我有三個型號,我想執行跨一個簡單的搜索:Rails 3.1 - 簡單搜索三個(或更多)模型?
class Release < ActiveRecord::Base
has_many :artist_releases
has_many :artists, :through => :artist_releases
has_many :products, :dependent => :destroy
end
class Product < ActiveRecord::Base
belongs_to :release
has_many :artists, :through => :releases
end
class Artist < ActiveRecord::Base
has_many :artist_releases
has_many :releases, :through => :artist_releases
end
在我的產品控制器我可以成功地呈現產品列表使用跨越釋放和產品搜索:
@products = Product.find(:all, :joins => :release, :conditions => ['products.cat_no LIKE ? OR releases.title LIKE ?', "%#{params[:search]}%","%#{params[:search]}%"])
我真的需要能夠搜索藝術家。我會怎麼做呢?我最好在產品控制器中使用它,因爲它是我需要顯示的產品列表。
我試過添加:連接=>:藝術家及其變體,但似乎沒有工作。
我知道有像斯芬克斯這樣的全面搜索選項,但現在我只需要這個簡單的方法來工作。
在此先感謝!
這看起來不錯,正是我所需要的,但是,它給了我一個錯誤:ProductsController中的HasManyThroughAssociationNotFoundError - 找不到關聯:產品模型中的關聯:我知道這不是一個有很多通過,所以我們如何做到這一點期望一對多的關係? – Raoot
請注意連接關聯名稱中單數':release',而表名中的複數'releases.title'。 Crucial :) –
是的,我喜歡它。正如我測試我刪除了所有引用釋放和錯誤總是相同的!?! – Raoot