我正在关注Railscasts的高级搜索表单。
这是搜索模型:
search.rb
class Search < ActiveRecord::Base
attr_accessible :keywords
def segnalazione_animalis
@segnalazione_animalis ||= find_segnalazione_animalis
end
private
def find_segnalazione_animalis
segnalazione_animalis = SegnalazioneAnimali.order(:Titolo)
segnalazione_animalis = segnalazione_animalis.where("Titolo like ?", "%#
{keywords}%") if keywords.present?
segnalazione_animalis = segnalazione_animalis.where("Titolo like ?", "%#
{keywords}%") if keywords.present?
segnalazione_animalis = segnalazione_animalis.where("classe like ?", "%#
{keywords1}%") if keywords1.present?
segnalazione_animalis = segnalazione_animalis.where("specie like ?", "%#
{keywords2}%") if keywords2.present?
segnalazione_animalis
end
end
我有一个searching_controller.rb
class SearchesController < ApplicationController
def new
@search = Search.new
end
def create
@search = Search.create!(params[:search])
redirect_to @search
end
def show
@search = Search.find(params[:id])
end
end
new.html.erb文件是
<%= form_for @search do |f| %>
<div class="field">
<%= f.label :keywords %><br />
<%= f.text_field :keywords %>
</div>
<div class="field">
<%= f.label :keywords1,"Classe" %><br />
<%= f.text_field :keywords1 %>
</div>
<div class="field">
<%= f.label :keywords2,"Specie" %><br />
<%= f.text_field :keywords2 %>
</div>
<div class="actions"><%= f.submit "Search" %></div>
<% end %>
和节目文件:
<h1>Search Results</h1>
<%= render @search.segnalazione_animalis %>
我从我的segnalazione_animalis文件夹的索引文件中获取部分渲染:
_segnalazione_animali.html.erb
<table class="table1">
<tr>
<th>Titolo:</th><br>
<th>Classe:</th>
<th>Creato il:</th>
<th>Ultima Modifica il:</th>
<th></th>
</tr>
<% @search.segnalazione_animalis.each do |segnalazione_animali| %>
<tr>
<td><%= segnalazione_animali.Titolo %> </td>
<td><%= segnalazione_animali.classe %>
<td><%= l(segnalazione_animali.created_at, format:"%e %B %Y %k:%M:%S")</td>
<td><%= l(segnalazione_animali.updated_at, format:"%e %B %Y %k:%M:%S")%>
</td>
<td><%= link_to 'Mostra', [segnalazione_animali.user, segnalazione_animali]
%></td>
</tr>
<% end %>
</table>
当搜索有效并且有多个结果时,它会显示包含每个结果的更多表格。 示例:它找到两个结果,它显示两个带有两个结果的表。
答案 0 :(得分:0)
嗯,是的,您使用partial显示结果,而partial部分定义了一个新表,因此如果有多个动物,则会有多个表。渲染集合时,rails会自动渲染EACH对象的相应部分。
如果您只想要一个表,请在show file
中执行此操作 <h1>Search Results</h1>
<table class="table1">
<tr>
<th>Titolo:</th><br>
<th>Classe:</th>
<th>Creato il:</th>
<th>Ultima Modifica il:</th>
<th></th>
</tr>
<%= render @search.segnalazione_animalis %>
</table>
而在部分只包括
<tr>
<td><%= segnalazione_animali.Titolo %> </td>
<td><%= segnalazione_animali.classe %>
<td><%= l(segnalazione_animali.created_at, format:"%e %B %Y %k:%M:%S")</td>
<td><%= l(segnalazione_animali.updated_at, format:"%e %B %Y %k:%M:%S")%></td>
td><%= link_to 'Mostra', [segnalazione_animali.user, segnalazione_animali] %></td>
</tr>
铁轨的所有部分魔力。 :)