MetaSearch“未定义的方法`model_name'用于NilClass:Class”用于全局条形搜索

时间:2011-02-28 21:18:49

标签: ruby-on-rails ruby-on-rails-3 meta-search

我正在使用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 %>

2 个答案:

答案 0 :(得分:3)

如果@search设置为nil,您会收到此错误。确保不是这种情况。

答案 1 :(得分:1)

试试这个语法:

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

在我的情况下,我使用视图从用户输入收集嵌套属性,但此语法也在其他上下文中解决此错误消息。