簡體   English   中英

Searchlogic OR 條件導致未定義的方法

[英]Searchlogic OR condition results in undefined method

我確信我忽略了一些東西,因為這是我第一次使用 Searchlogic。

每當我在 controller 中使用類似Listing.city_like_or_state_like(params[:search])的語句時,Rails 都會返回“未定義方法”錯誤。 我正在嘗試在同一個 model 中搜索 2 個字段。

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

我在這里錯過了什么嗎? 我認為 OR 條件可以與 Searchlogic 鏈接在一起。 如何實現 OR 語句?

Searchlogic 每次調用僅支持一個“操作員”。 所以你想做的是

Listing.city_or_state_like(params[:search])

我認為您可以使用 named_scopes 並將參數直接傳遞給 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM