搜索Fullname,在两个字段firstname,lastname rails

wiw*_*wit 2 ruby-on-rails

我正在为我的应用程序搜索一个搜索框,我有两个字段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)