【问题标题】:Searchlogic OR condition results in undefined methodSearchlogic OR 条件导致未定义的方法
【发布时间】:2011-05-04 01:11:11
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: ruby-on-rails searchlogic


    【解决方案1】:

    Searchlogic 每次调用仅支持一个“操作员”。所以你想做的是

    Listing.city_or_state_like(params[:search])
    

    【讨论】:

      【解决方案2】:

      我认为您可以使用 named_scopes 并将参数直接传递给 SearchLogic

      models/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
      

      controllers/listing_controller.rb

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

      我赞成 aNoble 的回答:D

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-31
        • 2019-07-13
        • 2015-01-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-28
        相关资源
        最近更新 更多