有没有简单的方法来搜索提取的记录?

时间:2010-10-12 09:19:49

标签: ruby-on-rails ruby activerecord

所以,我想搜索获取的记录:

p = Product.added_today # Get records by scope

# wants something like
p.search(:name => 'Clocks')

是否容易(轨道方式)这样做(宝石或其他东西)?

4 个答案:

答案 0 :(得分:2)

试试这个:

pa =  Product.added_today
pa.select{|p| p.name == "Clocks"}

答案 1 :(得分:1)

您可以使用以下Rails功能来模仿这种搜索。

  • 在Rails 2中,您可以使用 Named Scopes
  • 在Rails 3中,您可以使用 Arel (请参阅自述文件部分)

答案 2 :(得分:1)

尝试建立您的范围:
Product.added_today.find(:all, :conditions => {:name => 'Clock'})

答案 3 :(得分:0)

一种方法是使用ruby的find_all -

q = p.find_all{ |e| e.name == 'Clocks' }
因为这个代码使用暴力ruby数组搜索,性能不是很好。如果你希望p包含超过几十个元素,那么使用数据库查询会更好,性能更好。