Поисковое условие ИЛИ приводит к неопределенному методу

Я уверен, что я что-то упускаю, так как я впервые использую 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

Другие вопросы по тегам