高级搜索表单不起作用

时间:2014-07-11 22:27:08

标签: ruby-on-rails forms search each

我正在关注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
  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="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>

            <% @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>

当我搜索某些内容时,我遇到以下错误:

未定义的方法`each'代表nil:NilClass

我想我必须在控制器中添加一些东西,但我不知道是什么!!

1 个答案:

答案 0 :(得分:0)

_segnalazione_animali.html.erb中的行更改为

<% @search.segnalazione_animalis.each do |segnalazione_animali| %>