2014-07-12 51 views
0

我正在關注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 

我有一個searches_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 %>&nbsp;&nbsp;&nbsp;&nbsp;</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

嗯,是的,你顯示的結果使用部分和部分定義一個新表,所以如果有多個動物會有多個表。當你渲染一個集合軌時,會自動渲染相應的局部對象。

如果你想只有一個表,然後做這在演示文件

<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 %>&nbsp;&nbsp;&nbsp;&nbsp;</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> 

所有部分。 :)

+0

謝謝!真的!我會在幾分鐘內嘗試! – tettoroberto