rails 模糊查询

第一种方法:使用ransack的gem包的方法

1.gemfile文件中添加:gem 'ransack',然后bundle以下(需要重启rails server才能使用,否侧会出现nomethoderror的报错)

2.前端表单:

<%= form_tag search_path, method: :get do %>
   


      <%= search_field_tag("q[name_cont]", params["q"] && params["q"]["name_cont"], placeholder: "默认提示")%>
   

<% 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]}%")

你可能感兴趣的:(rails,前端WEB)