railscast #37에는 구현하려고하는 간단한 검색이 표시됩니다. 다음 협회가 있습니다 :레일 검색 쿼리 관련 모델
class Owner < ActiveRecord::Base
has_many :dogs
end
class Dog < ActiveRecord::Base
belongs_to :owner
end
개 모델에는 "name"속성이 있으며 소유자도 있습니다. 나는 "Fido"(개) 또는 "Bob"(소유자)이라고 입력하면 Fido가 목록에 표시되도록 개 목록을 필터링 할 수 있어야합니다.
모델 dog.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
그러나 소유자 열이 없다고합니다. 검색 조건을 변경하여 개 이름과 소유자 이름을 모두 검색 할 수 있습니까?
에 액세스 할 수? – MrYoshiji