Я пытаюсь написать запрос, который находит клиентов по их полному имени.Поиск по имени
У меня есть модель с именем «Клиент» с полями имени, фамилии и среднего имени.
У меня также есть этот метод 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'. –
, но как бы я искал поиск как в имени, так и в имени? – Liliana
Будет ли 'query' всегда содержать первое, последнее и среднее имя? – Santhosh