我正在使用我的第一个搜索表单来查询Bboy模型。搜索字段中的输入参数是Bboy模型的名称属性。我想在下表中显示搜索结果。
这是我的搜索表单代码:
<%= form_tag( :method => "get", id: "search-form") do %>
<%= text_field_tag :search, params[:name], placeholder: "Search Bboys" %>
<%= submit_tag "Search", :name => nil %>
<% end %>
这在我的Bboy模型中:
def self.search(name)
where('name LIKE ?', "%#{name}%")
end
这是SearchController.rb
class SearchController < ApplicationController
def index
@bboy = Bboy.search(params[:name])
end
end
这是在search / index.html.erb搜索结果中:
<h1> Here are your search results: </h1>
<table class="table table-striped table-hover ">
<thead>
<tr>
<th>Name</th>
<th>Crew</th>
<th>Country</th>
<th>Foundation</th>
<th>Originality</th>
<th>Dynamics</th>
<th>Execution</th>
<th>Battle</th>
<th>User Votes</th>
</tr>
</thead>
<tbody>
<% @bboy.each do |bboy| %>
<tr>
<td><%= bboy.name %></td>
<td><%= bboy.crew %></td>
<td><%= bboy.country %></td>
<td><%= rating_for bboy, "foundation" %></td>
<td><%= rating_for bboy, "originality" %></td>
<td><%= rating_for bboy, "dynamics" %></td>
<td><%= rating_for bboy, "execution" %></td>
<td><%= rating_for bboy, "battle" %></td>
<td><%= Rate.raters_count(bboy.id) %></td>
<td><%= link_to 'Show', bboy %></td>
<td><%= link_to 'Edit', edit_bboy_path(bboy) %></td>
<td><%= link_to 'Destroy', bboy, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</tbody>
</table>
<% end%>
答案 0 :(得分:0)
您正在使用form_tag,因此您还需要提供网址,您的form_tag应该点击索引操作而不是创建
form_tag( :method => "get", url: searches_path , id: "search-form", )
答案 1 :(得分:0)
您的搜索表单正在text_field_tag :search
中提交数据
并且在您的控制器中,您正在从params[:name]
获取数据params[:search]
在控制器操作中提交表单后检查你的参数