2010-10-12 93 views

回答

1

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

  • 在Rails 2可以使用Named Scopes
  • 在Rails 3,您可以使用Arel(见自述部分)
0

一个方法是使用红宝石的find_all -

q = p.find_all{ |e| e.name == 'Clocks' } 

,因为这此代码使用蛮力红宝石阵列搜索,性能也不是很大。如果您期望p包含多于几十个元素,那么使用数据库查询会更好,性能更好。

1

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

+0

不,我想搜索已经提取的记录! – rbnoob 2010-10-12 10:54:12

+0

此代码只提取你想要的。但是,如果您已经获取了行,并且现在想要选择一些记录,则我能想到的唯一方法就是遍历所有记录。检查amba的答案。 – Faisal 2010-10-12 11:08:02

2

试试这个:

pa = Product.added_today 
pa.select{|p| p.name == "Clocks"} 
相关问题