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