我正在使用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 %>
答案 0 :(得分:3)
如果@search
设置为nil
,您会收到此错误。确保不是这种情况。
答案 1 :(得分:1)
试试这个语法:
<%= form_for(:object) do |obj| %>
在我的情况下,我使用视图从用户输入收集嵌套属性,但此语法也在其他上下文中解决此错误消息。