4

私はErnieによる素晴らしいMetaSearchを使用していますが、厄介な問題があります。

私のapplication.html.erbには、StackOverflowページの上部にあるこのような検索フィールドがあります。

<%= form_for @search, :url => vagas_path do |f| %>
    <%= f.text_field :titulo_or_empresa_user_username_contains %>
    <%= f.submit "", :class => "search-button", :name => "submit" %>
<% end %>

問題は、すべてのコントローラーのすべてのアクションで@searchが初期化されていないため、Vagas#indexにいないときに、「NilClass:Classの未定義のメソッド`model_name'」メッセージが表示されることです。

そのための最良の解決策は何ですか?

============================================

解決

<%= form_tag vagas_path, :method => :get, :id => 'vaga_search' do %>
    <%= text_field_tag 'search[titulo_or_empresa_user_username_contains]' %>
    <%= submit_tag "", :class => "search-button", :name => "submit", :id => 'search_submit' %>
<% end %>
4

2 に答える 2

3

@searchに設定すると、このエラーが発生しnilます。これが当てはまらないことを確認してください。

于 2011-02-28T23:10:36.717 に答える
1

次の構文を試してください。

<%= form_for(:object) do |obj| %>

私の場合、ビューを使用してユーザー入力からネストされた属性を収集していましたが、この構文は他のコンテキストでもこのエラーメッセージを回避します。

于 2012-08-29T22:34:35.100 に答える