我跟着:http://railscasts.com/episodes/37-simple-search-form(虽然是更新后的版本)来实现对我的应用的搜索。
现在搜索时,它会搜索1个表格。如果该表链接到另一个表或连接表怎么办?有没有办法让它搜索这些字段。
我这样说,因为目前我正在从一张桌子搜索字段:
def self.search(search)
if search
where('LOWER (description) LIKE ? OR LOWER (title) LIKE ?', "%#{search}%" , "%#{search}%")
else
scoped
end
end
但我真的很喜欢搜索链接表。有什么想法吗?
答案 0 :(得分:2)
是的,您可以添加联接到查找
# models/project.rb
def self.search(search)
if search
find(:all, :joins => :other_model, :conditions => ['projects.name LIKE :search or other_models.name LIKE :search', {:search => "%#{search}%"}])
else
find(:all)
end
end
好的,这将是未来更好的例子
def self.search(search)
if search
joins(:other_model).where('LOWER (projects.description) LIKE ? or LOWER (other_models.name) LIKE ?', "%#{search}%", "%#{search}%")
else
scoped
end
end
答案 1 :(得分:0)
你可以看看searchlogic(它在github上有一个rails 3分支)它使搜索更容易!