我正在为我的应用程序搜索一个搜索框,我有两个字段firstname和lastname.我为它们创建了一个full_name方法.
档案型号:
def full_name
"#{self.firstname} #{self.lastname}"
end
Run Code Online (Sandbox Code Playgroud)
这是我的搜索方法
def self.search_by_full_name(search)
where("(fisrtname || lastname) LIKE :q", :q => "%#{search}%")
end
Run Code Online (Sandbox Code Playgroud)
Profile Controller:
def index
if params[:search]
@profile = Profile.search_by_full_name(params[:search])
else
@profile = Profile.all
end
Run Code Online (Sandbox Code Playgroud)
结束
Fak*_*had 10
你可以这样做
where("CONCAT_WS(' ', first_name, last_name) LIKE ?", "%#{query}%")
Run Code Online (Sandbox Code Playgroud)
或者你可以创建一个范围
scope :search_by_full_name ->(query) { where("CONCAT_WS(' ', first_name, last_name) LIKE ?", "%#{query}%") }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2542 次 |
| 最近记录: |