第一种方法:使用ransack的gem包的方法
1.gemfile文件中添加:gem 'ransack',然后bundle以下(需要重启rails server才能使用,否侧会出现nomethoderror的报错)
2.前端表单:
<%= form_tag search_path, method: :get do %>
<div >
<%= search_field_tag("q[name_cont]", params["q"] && params["q"]["name_cont"], placeholder: "默认提示")%>
</div>
<% end %>
3.后台控制器方法:
@q = Game.ransack(params[:q])
@games = @q.result(distinct:false)
第二种方法:简单易懂的前端表单方法,但是后端代码做模糊查询取数据时要用手写SQL
前端代码:
<%=
form_tag(
"/search"
, method:
"get"
)
do
%>
<%=
label_tag(
:q
,
"Search for:"
)
%>
<%=
text_field_tag(
:q
)
%>
<%=
submit_tag(
"Search"
)
%>
<%
end
%>
@game=Game.where("name like ?","%#{params[:name]}%")