rails 模糊查询

来源:互联网 发布:网络销售合作协议 编辑:程序博客网 时间:2024/04/29 04:40

第一种方法:使用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]}%")

0 0