【问题标题】:undefined method `<' for nil:NilClassnil:NilClass 的未定义方法“<”
【发布时间】:2013-04-29 08:11:24
【问题描述】:

面临这样的问题。请告诉我为什么会这样?

    NoMethodError in Searches#index

undefined method `<' for nil:NilClass

Extracted source (around line #14):

11: </div>
12: <div class="results">
13: <table>
14: <% @searches.each do |search, book| %>
15:   <tr>
16:     <% if session[:user_id] %>
17:     <td><%= search.name %></td>

【问题讨论】:

  • 据我所知,@searches 应该看起来像 [ [search, book], [search, book], ...] 以使用这样的迭代。
  • 能否请您也发布控制器方法
  • @searches 可能为零。试试这个检查
  • 如果 @searches 为 nil,它将是 'undefined method 'each' for nil'。
  • 我认为你的@searches 只是一维数组,这样运行 |variable1, variable2|返回这种错误,因为变量 2 被赋值为 nil。刚刚在控制台中检查了这个。您能否删除循环,输出“@searches.inspect”并在问题编辑中发布它的样子。

标签: ruby-on-rails


【解决方案1】:

@searches 可能为零。改变这个

<% @searches.each do |search, book| %>
...
<% end %>

到这里:

<% if !@searches %>
<h1> @searches is nil </h1>
<% else %>
 @searches.each do |search, book| 
%>
....
<% end %>
<% end %>

这会告诉你@searches 是否为零。

【讨论】:

  • 你是对的。我所有的数据都在生产中,而不是在开发中。本地机器上的站点运行良好,但正如我所说的那样,服务器出现了这样的错误。感谢您的帮助!
  • 我无法解释为什么在 nil 类上调用 .each 会告诉您没有为该类定义 '
  • 这个问题并不严重,它是设置狮身人面像和思考狮身人面像的错综复杂的问题,因为其他视图运行良好。
【解决方案2】:

试试这个:

<%= search['name'] %>

而不是使用这个:

<%= search.name %>

【讨论】:

    猜你喜欢
    • 2011-07-27
    • 2013-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多