Tag: ruby

如何使用单个字符串键访问散列的嵌套元素?

我正在和Ruby搞砸,基本上我都有 @trans = { :links => { :quick_notes => “aaaaaaa” } } 我想打个电话 def t #…something end t(‘links.quick_notes’) 访问 trans[:links][:quick_notes] 我基本上试图实现与使用国际化时相同的function I18n.t(‘something.other.foo’) 我想出了这种方法 def t(key) a=” key.to_s.split(‘.’).each{|key| a+=”[:#{key}]” } #now a == “[:links][:quick_notes]” #but I cant figure out how can I call it on @trans variable end t(‘links.quick_notes’) 有任何想法吗 ? 感谢名单

在Ruby中动态创建多维哈希

我是一名PHP开发人员,他试图获得一些Ruby熟练程度。 我现在正在削减其中的一个项目是源代码审计工具,它可以扫描webapp文件,查找多种Web编程语言中的潜在危险函数。 找到匹配项后,脚本会将相关信息保存在poi (兴趣点)类中,以便稍后显示。 该类的示例实例看起来像这样(在YAML中建模): poi: file_type: “php” file: “the-scanned-file.php” line_number: 100 match: “eval()” snippet: “echo eval()” 在展览中,我想组织这些兴趣点,如下所示: – file_type — file — match (the searched payload) 因此,在演示之前,我正在尝试将一个平面的poi对象数组构成一个镜像上面结构的哈希。 这将允许我简单地遍历散列中的项目以产生所需的屏幕上组织。 (或者至少,这是计划。) 现在,对于我的问题:我如何在Ruby中做到这一点? 在PHP中,我可以很容易地做到这样的事情: file_type][$point->file][$point->match][] = $point; } ?> 我试过将这种思想从PHP翻译成Ruby,但无济于事: sorted_pois = {} @points_of_interest.each_with_index do |point, index| sorted_pois[point.file_type.to_sym][point.file.to_sym][point.match.to_sym].push point end 我已经花了几个小时在这上面,而且此刻我的头撞到了墙上,所以我想我离开了基地。 在Ruby中处理这个问题的正确方法是什么? 更新: 作为参考,这是我定义的精确方法: # sort the […]

Sidekiq:确保队列中的所有作业都是唯一的

我有一些更新触发器,将作业推送到Sidekiq队列。 因此,在某些情况下,可以有多个作业来处理同一个对象。 有几个独特的插件( “中间件” , 独特的工作 ),它们没有太多记录,但它们似乎更像是节流器,以防止重复处理 ; 我想要的是一个阻止重复创建相同工作的节流器。 这样,对象将始终以最新鲜的状态进行处理。 是否有插件或技术? 更新:我没有时间制作中间件,但我最终得到了一个相关的清理function,以确保队列是唯一的: https : //gist.github.com/mahemoff/bf419c568c525f0af903

Ruby模块中的私有类(不是类方法)?

我是Ruby的新手(熟悉Python,C ++和C)。 我需要创建一个只能由模块中的其他类和方法使用的类。 在Python中,我只是将其称为__classname。 我在C ++中使用了一个空的typedef。 我如何在Ruby中执行此操作(或者我是在咆哮错误的树而不是以“Ruby方式”执行此操作?)

Ruby – 动态地向类添加属性(在运行时)

我正在寻找一种方法在运行时向我已经定义的类添加属性,或者更好: class Client attr_accessor :login, :password def initialize args = {} self.login = args[:login] self.password = args[:password] end end 但是,我有这个哈希 {:swift_bic=>”XXXX”, :account_name=>”XXXX”, :id=>”123″, :iban=>”XXXX”} 我希望这个哈希成为我的客户端实例的一部分 client = Client.new :login => ‘user’, :password => ‘xxxxx’ 然后带着神奇的魔力 client @@%$%PLIM!!! {:swift_bic=>”XXXX”, :account_name=>”XXXX”, :id=>”123″, :iban=>”XXXX”} 我可以访问 client.swift_bic => ‘XXXX’ client.account_name => ‘XXXX’ client.id => 123 我还想保持一个适当的对象结构,如: Client.new(:login => ‘user’, […]

Micropost对用户页面的评论(Ruby on Rails)

在用户页面上我有很多微博,我想为每个微博添加评论表和评论。 我有三个模型:User,Micropost,Comment。 user.rb class User < ActiveRecord::Base has_many :microposts, dependent: :destroy has_many :comments end micropost.rb class Micropost < ActiveRecord::Base belongs_to :user has_many :comments, dependent: :destroy end comment.rb class Comment < ActiveRecord::Base attr_accessible :comment_content belongs_to :user belongs_to :micropost validates :comment_content, presence: true validates :user_id, presence: true validates :micropost_id, presence: true end comments_controller.rb class CommentsController < ApplicationController […]

Rails控制器命名空间

在rails上使用ruby中的命名空间有什么优缺点。 例如:我有很多控制器喜欢 CompanyLocations CompanyXXXX CompanySports CompanyActivites CompanyQQQQQ 我想将所有这些控制器放在Company文件夹中。 什么是铁路最佳做法?

在heroku上缓慢加载页面

我在heroku上有一个rails 4应用程序。 我对两者都比较陌生。 我加载的每个页面或执行的ajax都需要1分钟。 总是不管什么时候。 我认为它与ajax调用有关,因为我在视觉上看到DOM完全加载的时候,但它确实是我从heroku中获取的任何页面 为了测试这个,我制作了一个测试页面,其中包括 test a test page 没有布局,没有CSS没有其他任何东西 ,没有html或body标签,只有H2标签和一些文本,这就是服务的全部内容。 所以,在我将URL放入浏览器并点击回车后。 我看到heroku日志-t跳了起来,我看到正在处理的请求 2014-07-12T21:07:36.149964+00:00 heroku[router]: at=info method=GET path=”/pages/test” host=myapp.herokuapp.com request_id=490be219-e72b-4df3-879b-9060b2b5140a fwd=”my.ip.add.ress” dyno=web.1 connect=12 service=11 status=200 bytes=1049 2014-07-12T21:07:36.136011+00:00 app[web.1]: Started GET “/pages/test” for my.ip.add.ress at 2014-07-12 21:07:36 +0000 2014-07-12T21:07:36.141517+00:00 app[web.1]: Rendered pages/test.html.erb (0.4ms) 2014-07-12T21:07:36.139697+00:00 app[web.1]: Processing by PagesController#test as HTML 2014-07-12T21:07:36.141690+00:00 app[web.1]: Completed 200 […]

如何反转ruby的include函数

我将在代码中解释我正在寻找的内容,因为这可能是最简洁的: module Mixin def method puts “Foo” end end class Whatever include Mixin end w = Whatever.new w.method => “Foo” # some magic here w2 = Whatever.new w.method => NoMethodError 我曾尝试使用remove_const取消定义Mixin模块,但这似乎对Whatever没有任何影响。 我假设#include只是将模块的引用添加到类的方法解析链中 – 但是这种行为与此不一致。 任何人都可以告诉我幕后实际做了什么,以及如何扭转这种情况?

在mac osx上安装sqlite3?

我刚买了一个新的MBP 我在线阅读Sqlite3已经存在于OSX上。 我从官方网站上下载了mac端口(并安装了它)以及sqlite3的bin文件。 在一个指南我正在阅读有关rails的信息,它告诉我更新sqlite3,我在终端运行以下命令:sudo port upgrade sqlite3 我收到以下错误:错误:未安装sqlite3 我迷路了! 请帮忙