Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 未定义的方法'name_cont';搜索搜索<;类别:错误?_Ruby On Rails_Search - Fatal编程技术网

Ruby on rails 未定义的方法'name_cont';搜索搜索<;类别:错误?

Ruby on rails 未定义的方法'name_cont';搜索搜索<;类别:错误?,ruby-on-rails,search,Ruby On Rails,Search,我有一个非常简单的Rails应用程序,我想在上面使用Ransack搜索 但我得到了以下错误: undefined method `name_cont' for Ransack::Search<class: Post, base: Grouping <combinator: and>>:Ransack::Search 索引视图: <%= search_form_for @q do |f| %> <div class="field"&

我有一个非常简单的Rails应用程序,我想在上面使用Ransack搜索

但我得到了以下错误:

  undefined method `name_cont' for Ransack::Search<class: Post, base: Grouping     
  <combinator: and>>:Ransack::Search
索引视图:

<%= search_form_for @q do |f| %>
  <div class="field">
    <%= f.label :name_cont, "Name contains" %>
    <%= f.text_field :name_cont %>
  </div>
  <div class="actions">
    <%= f.submit "Search" %>
  </div>
<% end %>


我认为您的问题在于控制器中未定义方法
name\u cont
。我相信这里发生的是搜索表单得到一个没有定义
name\u cont
的对象,这就是你得到这个错误的原因。我的建议是为搜索帖子定义一个变量名

首先,您需要使用ransack的helper方法创建表单,
form\u for
现在是
search\u form\u for


如果您仍然收到相同的错误,请检查您的Post模型是否具有属性
name

,这不是简单定义名为name\u cont的方法的情况。按约定进行搜索需要您创建
之类的字段。Post模型必须包含名为
name
的属性。我也遇到了类似的问题,“title\u cont”的未定义方法错误。请帮我解决这个问题?
<%= search_form_for @q do |f| %>
  <div class="field">
    <%= f.label :name_cont, "Name contains" %>
    <%= f.text_field :name_cont %>
  </div>
  <div class="actions">
    <%= f.submit "Search" %>
  </div>
<% end %>