0
我有一個模型類別,has_many產品和一個產品依次has_many類別。當用戶搜索類別時,我想返回匹配的類別的產品而不會丟失我的Arel對象。這是我到目前爲止:如何僅在Rails「where」查詢中選擇關聯的對象?
Category.where("upper(title) like ?", search_term.upcase).map {|category| category.products}.flatten
這沒有返回產品的技巧,但我當然是一個數組而不是Arel。我可以添加一個:includes(:products)
條款,所以我確實獲得了這些產品,但我仍將它們附加到它們的類別中。如何調整我的查詢,以便我回來的是隻能解決產品問題的Arel?
[「使用一個類的方法是接受範圍參數的首選方式」] (http://guides.rubyonrails.org/active_record_querying.html#passing-in-arguments),但這主要是nit挑選。 – 2012-04-24 02:32:09
謝謝,這是一個很好的觀點。 – DanneManne 2012-04-24 02:56:03
只爲記錄:'def self.in_categories_like(search_term);加入(:categories).where(「upper(categories.title)like?」,search_term.upcase); end'。 – 2012-04-24 07:18:10