我敢肯定,我忽视的东西,因为这是使用Searchlogic我的第一次。
每当我用如下语句Listing.city_like_or_state_like(params[:search])
在我的控制器时,Rails会返回一个“未定义的方法”的错误。 我试图在同一个模型中搜索2场。
但是,如果我用Listing.city_like(params[:search])
一切都完全正常。
我失去了一些东西在这里? 我想OR条件可以连同Searchlogic被链接。 我怎样才能实现一个或声明?
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])
我上投票aNoble的回答虽然:d