我想对三个模型进行简单的搜索:
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]}%"])
我真的需要能够搜索艺术家。我该怎么做呢?理想情况下,我需要在产品控制器中使用它,因为它是我需要显示的产品列表。
我试过添加 :joins => :artist 及其变体,但似乎没有一个工作。
我知道有像 Sphinx 这样的选项可以进行完整搜索,但现在我只需要这种简单的方法来工作。
提前致谢!