我正在尝试编写一个查询来查找客户的全名。按全名搜索
我有一个名为客户端的名字,姓氏和中间名字段。
我也有这个client_full_name方法在我的用户模型:
def client_full_name
"#{self.Client_fname} #{self.Client_mi} #{self.Client_lname}"
end
# FOR SEARCHES
def self.search_by_client_full_name(query)
where("client_full_name like ?", "%#{query}%")
end
我有这个在我的控制器
def index
#FOR SEARCHES
if params[:search]
@clients = Client.search_by_client_full_name(params[:search])
else
@clients = Client.all
end
end
而且我有这个在我的指数
<h2>Search for Clients</h2>
<%= form_tag(clients_path, :method => "get", id: "search-form") do %>
Search by Client Name: <br />
<%= text_field_tag :search, params[:search], placeholder: "Search Clients" %>
<%= submit_tag "Search", :client_full_name => nil %>
<% end %>
这是我不断收到的错误
SQLite3::SQLException: no such column: client_full_name: SELECT "clients".* FROM "clients" WHERE (client_full_name like '%John Smith%')
谢谢你的帮助。
给出更多代码。和你当前的代码是错误的。你有一个方法名称,而不是在where子句中命名的属性。 – 2014-11-07 02:59:19
但我怎么去寻找在名字和姓氏字段? – Liliana 2014-11-07 03:11:37
'query'是否总是包含名字,姓氏和名字? – Santhosh 2014-11-07 05:18:40