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 回答