Поисковое условие ИЛИ приводит к неопределенному методу - PullRequest
0 голосов
/ 04 мая 2011

Я уверен, что что-то упускаю из виду, так как я впервые использую Searchlogic.

Всякий раз, когда я использую оператор, подобный Listing.city_like_or_state_like(params[:search]), в моем контроллере, Rails возвращает ошибку «Неопределенный метод». Я пытаюсь найти 2 поля в одной и той же модели.

Однако, если я использую Listing.city_like(params[:search]), то все в порядке.

Я что-то здесь упускаю? Я думал, что ИЛИ условия могут быть соединены вместе с Searchlogic. Как я могу реализовать оператор OR?

Ответы [ 2 ]

1 голос
/ 04 мая 2011

Searchlogic поддерживает только одного «оператора» на звонок. Итак, что вы хотите сделать, это

Listing.city_or_state_like(params[:search])
0 голосов
/ 04 мая 2011

Я думаю, что вы можете использовать named_scopes и передать параметры прямо в SearchLogic

models / list.rb

class Listing < ActiveRecord::Base
    named_scope :city_or_state_like, lambda{|*args| {
                 :conditions => ["city ILIKE ? OR state ILIKE ?", args[0], args[1] ]
                  }
                }

end

controllers / Listings_controller.rb

#params for [:search][:city_or_state_like] = [city_var][state_var]
    Listing.search(params[:search])

Я уже голосую за ответ Нобла: D

...