我的阵营在铁轨中使用的常用习语如下:
def right_things(all_things, value)
things = []
for thing in all_things
things << thing if thing.attribute == value
end
return things
end
我怎样才能让这更好/更快/更强?
THX
-C
答案 0 :(得分:13)
def right_things(all_things, value)
all_things.select{|x| x.attribute == value}
end
答案 1 :(得分:1)
如果你的东西是ActiveRecord模型,你只需要为当前目的选择的项目,如果你使用Rails 2.0(?绝对是2.1)或更高版本,你可以找到named_scope
有用。
class Thing
named_scope :rightness, lambda { |value| :conditions => ['attribute = ?', value] }
end
所以你可以说
Thing.rightness(123)
,(在这种情况下)类似于
Thing.find_by_attribute(123)
因为它归结为一个SQL查询,但它更容易链接来修改SQL。如果这对你有用,当然可能不是......