2010-10-12 97 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"} 
相關問題