i want include search functionality rails app. have included search date works fine, search name ?
isn't giving me results.
i name search wildcard search.
can please tell me might going wrong?
view index.html.erb:
<%= form_tag(appointments_path, :method => "get") %> <%= text_field_tag :search, nil, :placeholder => "search full name" %> <%= text_field_tag :search, nil, :placeholder => "search date (yyyy-mm-dd)"%> <%= submit_tag "search" %> <% end %>
controller:
def self.search(search_for) appointment.where('name ?', search_for) appointment.where('date = ?', search_for) end
in sql, think query ought be:
def self.search(search_for) appointment.where('name ?', "%#{search_for}%") end
on note, think problem might encountering form sends search
parameter. meaning when set name, after date overriding it.
a way approach might change names of input field, so:
<%= form_tag(appointments_path, :method => "get") %> <%= text_field_tag :search_name, params[:search_name], :placeholder => "search full name" %> <%=text_field_tag :search_date, params[:search_date], :placeholder => "search date (yyyy-mm-dd)"%> <%= submit_tag "search" %> <% end %>
in controller, do:
def search appointment.search(search_params) end private def search_params params.permit(:search_date, :search_name) end
in appointment model, have:
def self.search(search_date, search_name) appointment.where("name :search_name or date = :search_date", search_name: "%#{search_name}%", search_date: search_date) end
Comments
Post a Comment