【发布时间】:2014-04-10 02:51:01
【问题描述】:
在railscast #37 中,他们显示了我正在尝试实现的简单搜索。我有以下关联:
class Owner < ActiveRecord::Base
has_many :dogs
end
class Dog < ActiveRecord::Base
belongs_to :owner
end
Dog 模型有一个属性“name”,所有者也有。我需要能够过滤狗列表,以便如果您键入“Fido”(狗)或“Bob”(所有者),Fido 将显示在列表中。以下是当前设置搜索的方式:
模型狗.rb:
def self.search(search)
if search
find(:all, :conditions => ['name LIKE ?', "%#{search}%"])
else
find(:all)
end
end
这将只返回匹配狗名的搜索词(忽略主人名)
我试着把它改成这样:
def self.search(search)
if search
find(:all, :conditions => ['name LIKE ? or owner.name LIKE ?', "%#{search}%", "%#{search}%"])
else
find(:all)
end
end
但是说没有所有者列。如何更改搜索条件以同时搜索狗名和主人名?
【问题讨论】:
-
你用的是哪个版本的rails?
标签: ruby-on-rails ruby activerecord