草庐IT

数组方法

全部标签

puppet - 如何将数组传递给 ruby​​ 中的 erb 模板并对其进行迭代?

我需要一些关于erb模板的帮助,我似乎无法理解传递数组然后迭代它。我的问题是这样的。我想传递几个数组:`device=>["eth0","br0"],ipaddr=>["192.168.12.166","192.168.12.199"],netmask=>["255.255.255.0","255.255.255.0"],hwaddr=>'',network=>'',gateway=>["192.168.12.254","192.168.12.204"],到迭代数组中的每个项目并将其打印出来的模板:autoinetstaticaddressnetmaskbroadcastgateway

ruby-on-rails - 如何在 Rails 之外使用 Rails DateHelper 方法 time_ago_in_words?

因此,我下载并安装了ActiveHelpergem,但我仍然无法弄清楚如何在普通Ruby代码中使用ActionView的DateHelper方法,例如time_ago_in_words。这不包括在ActiveHelper中吗?是否可以在Rails之外使用这些方法?http://api.rubyonrails.org/classes/ActionView/Helpers/DateHelper.html#method-i-time_ago_in_words 最佳答案 试试这个:require'action_view'require'ac

ruby - 从 Ruby 中的类方法调用私有(private)实例方法

我可以创建一个可以被类方法调用的私有(private)实例方法吗?classFoodefinitialize(n)@n=nendprivate#orprotected?defplus(n)@n+=nendendclassFoodefFoo.bar(my_instance,n)my_instance.plus(n)endenda=Foo.new(5)a.plus(3)#Thisshouldnotbeallowed,butFoo.bar(a,3)#Iwanttoallowthis如果这是一个非常初级的问题,我深表歉意,但我无法通过Google找到解决方案。 最佳

ruby - 在 IRB 中,我可以查看我之前定义的方法的源代码吗?

如果我在IRB中定义了一个方法,是否有任何方法可以在稍后的session中查看其源代码?>defmy_method>puts"hi">end几屏输出之后我希望能够写出类似的东西>sourcemy_method然后回来:=>defmy_method;puts"hi";end;这可能吗? 最佳答案 不在IRB但在Pry此功能是内置的。看:pry(main)>defhellopry(main)*puts"hellomyfriend,it'sastrangeworldwelivein"pry(main)*puts"yes!therichgi

ruby-on-rails - Rails 4 按模型方法求和

在我的应用程序中,我有一个User模型,带有goal_ytd方法,执行一些计算。在Controller中,我有一个变量@users那可能是User或ActiveRecord::Relation的users,我想总结所有@users的goal_ytd我的第一个倾向是:@users.sum(&:goal_ytd)因为使用sum在这两种情况下都抛出了弃用警告在ActiveRecord::Relation上将在Rails4.1中消失。因此,我将代码更改为:@users.to_a.sum(&:goal_ytd)然后抛出一个NoMethodError因为,在某种情况下,@users由@users=

ruby-on-rails - Ruby 哈希数组。 group_by 一行修改

我有一个散列数组,类似于[{:type=>"Meat",:name=>"one"},{:type=>"Meat",:name=>"two"},{:type=>"Fruit",:name=>"four"}]我想把它转换成这个{"Meat"=>["one","two"],"Fruit"=>["Four"]}我尝试了group_by但后来我得到了这个{"Meat"=>[{:type=>"Meat",:name=>"one"},{:type=>"Meat",:name=>"two"}],"Fruit"=>[{:type=>"Fruit",:name=>"four"}]}然后我不能修改它只留下名

ruby-on-rails - Rails 如何根据日期范围创建月份数组

例子我有:range=start.to_date..(end.to_date+1.day)结束和开始是日期。如何根据这个范围创建月份数组?例子:我有日期23/1/2012和15/3/2012月份是一月、二月和火星。我想得到一个像["1/1/2012","1/2/2012","1/3/2012"]这样的数组如果范围在25/6/2012到10/10/2012之间数组将是:["1/6/2012","1/7/2012","1/8/2012","1/9/2012","1/10/2012"] 最佳答案 require'date'date_fro

ruby-on-rails - 使用 define_method 动态定义 setter 方法?

我使用大量迭代来定义模型中的便捷方法,例如:PET_NAMES.eachdo|pn|define_method(pn)do......end但我从来没有能够动态定义setter方法,即:defpet_name=(name)...end像这样使用define_method:define_method("pet_name=(name)")do...end有什么想法吗?提前致谢。 最佳答案 这是一个在用于扩展类的模块中使用define_method的完整示例:moduleVerboseSetterdefmake_verbose_sette

ruby 为给定值获取多个哈希键的有效方法

从给定值中获取所有哈希键的最有效方法是什么。my_hash={"a"=>"aa","b"=>"bb","c"=>"bb"}我想将散列“bb”作为输入值并将它们的所有键(b,c)作为数组返回只返回一个键:my_hash.index("bb")#returnsonlyb这有效但似乎效率低下:my_hash.select{|k,v|v=='bb'}.map{|i|i[0]}#returnsbandc我已经阅读了所有文档。我觉得我缺少了一些明显的东西。谢谢!更新:我最终切换了哈希创建的键和值,并使用数组作为值。这是一个更有效的解决方案。如果需要,请参阅下文了解进行值(value)查找的最佳方法

ruby - 在 Ruby 中展平字符串数组

将字符串数组转换为字符串的最佳惯用(最干净)方法是什么,同时保留每个元素的引号。换句话说,从这个:a=["file1.txt","file2.txt","file3.txt"]我需要得到这个"'file1.txt''file2.txt''file3.txt'"这里单引号和双引号可以互换。我知道的最好方法是使用映射和注入(inject)/减少。例如:a.map{|dir|"'"+dir+"'"}.join('')eg2:a.reduce("'"){|acc,dir|acc+=dir+"'"}可以通过避免创建临时字符串(+运算符)来提高性能。但这不是我的主要问题。有没有更简洁的方法来达到相