Поисковое условие ИЛИ приводит к неопределенному методу
Я уверен, что я что-то упускаю, так как я впервые использую Searchlogic.
Всякий раз, когда я использую заявление, как Listing.city_like_or_state_like(params[:search])
в моем контроллере Rails возвращает ошибку "Неопределенный метод". Я пытаюсь найти 2 поля в пределах одной модели.
Однако, если я использую Listing.city_like(params[:search])
все совершенно нормально.
Я что-то здесь упускаю? Я думал, что ИЛИ условия могут быть соединены вместе с Searchlogic. Как я могу реализовать оператор ИЛИ?
2 ответа
Searchlogic поддерживает только одного "оператора" на звонок. Итак, что вы хотите сделать, это
Listing.city_or_state_like(params[:search])
Я думаю, что вы можете использовать named_scopes и передать параметры прямо в SearchLogic
модели /listing.rb
class Listing < ActiveRecord::Base
named_scope :city_or_state_like, lambda{|*args| {
:conditions => ["city ILIKE ? OR state ILIKE ?", args[0], args[1] ]
}
}
end
Контроллеры /listing_controller.rb
#params for [:search][:city_or_state_like] = [city_var][state_var]
Listing.search(params[:search])
Я все же голосую за ответ Нобла:D