Searchlogic OR条件导致未定义的方法

我确信我忽略了一些东西,因为这是我第一次使用Searchlogic。

每当我在控制器中使用类似于Listing.city_like_or_state_like(params[:search])的语句时,Rails都会返回“未定义方法”错误。 我正在尝试搜索同一模型中的2个字段。

但是,如果我使用Listing.city_like(params[:search])一切都很好。

我在这里错过了什么吗? 我认为OR条件可以与Searchlogic链接在一起。 如何实现OR语句?

Searchlogic每次调用仅支持一个“运算符”。 所以你想要做的是

 Listing.city_or_state_like(params[:search]) 

我想你可以使用named_scopes并将params直接传递给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