簡體   English   中英

搜索邏輯和虛擬屬性

[英]searchlogic and virtual attributes

假設我有以下型號:

Person <AR
 def name
  [self.first_name,self.middle_name,self.last_name].select{|n| n.present?}.join(' ')
 end
end

如何使用searchlogic對虛擬屬性進行搜索,例如:

Person.search.name_like 'foo'

當然,我可以構造一個大型語句,例如:

Person.search.first_name_like_or_last_name_like_or_... 'argh'

但肯定有一種更優雅的方式。

Searchlogic可以與現有的命名范圍結合使用,並且必須使用虛擬屬性。 其中一種是:

 named_scope :name_like, lambda { |name| { :conditions => ['first_name LIKE  ? OR last_name LIKE ? OR middle_name LIKE ?', "%#{name}%","%#{name}%","%#{name}%"] }}

暫無
暫無

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

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