Ruby on rails rails中未定义的方法[]意味着什么?
我得到以下错误:Ruby on rails rails中未定义的方法[]意味着什么?,ruby-on-rails,methods,null,Ruby On Rails,Methods,Null,我得到以下错误: undefined method `[]' for nil:NilClass 第50行中的相关代码段: 47: <%=h @contact.date_entered.to_date %></br> 48: Next event: 49: <% next_delayed_todo = @contact.next_delayed_todo %> 50: <% unless next_delayed_todo[:event]
undefined method `[]' for nil:NilClass
第50行中的相关代码段:
47: <%=h @contact.date_entered.to_date %></br>
48: Next event:
49: <% next_delayed_todo = @contact.next_delayed_todo %>
50: <% unless next_delayed_todo[:event].nil? %>
52: <%= next_delayed_todo[:event].title %> </br>
47:
48:下一项活动:
49:
50:
52:
这意味着您对nil对象调用了[]。在这种情况下,next_delayed_todo为零
你想要的东西更像:
除非下一次推迟,否则为零next\u delayed\u todo[:event].nil?这意味着您对nil对象调用了[]。在这种情况下,next_delayed_todo为零 你想要的东西更像:
除非下一次推迟,否则为零next\u delayed\u todo[:event].nil?这意味着NilClass没有实现[]方法。这反过来意味着,在您的代码中,next\u delayed\u todo是nil
那是零吗?现在,您已经检查next_delayed_todo[:event]返回的值是否为nil。您还应该为next_delayed_todo添加一个nil检查,这意味着NilClass没有实现[]方法。这反过来意味着,在您的代码中,next\u delayed\u todo是nil
那是零吗?现在,您已经检查next_delayed_todo[:event]返回的值是否为nil。您还应该为next_delayed_todo添加一个nil检查查看如何在视图中有3行连续的代码?这是一个标志,你应该把它拉到助手中,以保持你的视图干净 新视图代码:
<%=h @contact.date_entered.to_date %></br>
Next event: <%= next_delayed_todo(@contact) %> </br>
请注意,您得到的错误是因为
next\u delayed\u todo
为零。助手方法的第一行使用rescue”“
设置另一个值(如果为nil)。您可以将其替换为rescue“none.”
或任何其他有意义的字符串。查看如何在视图中连续显示3行代码?这是一个标志,你应该把它拉到助手中,以保持你的视图干净
新视图代码:
<%=h @contact.date_entered.to_date %></br>
Next event: <%= next_delayed_todo(@contact) %> </br>
请注意,您得到的错误是因为
next\u delayed\u todo
为零。助手方法的第一行使用rescue”“
设置另一个值(如果为nil)。您可以将其替换为rescue“none.”
或任何其他有意义的字符串。NoMethodError:是从exception派生的类,是一个exception。在强动态类型语言中,如果试图对不存在该方法的类型使用该方法,则会引发错误类型异常
缺少的方法是一个函数
-http://ruby-doc.org/core/classes/Kernel.html#M005925
当obj被发送到
它无法处理的消息。符号是
调用的方法的符号,以及
args是任何被忽略的参数
传给它。默认情况下
当发生此错误时,解释器将引发错误
方法被调用。然而,事实并非如此
可以将该方法重写为
提供更动态的行为。这个
下面的示例创建了一个类Roman,
它用名称响应方法
由罗马数字组成,
返回相应的整数
价值观
我认为(在这一点上不要相信我)默认的method_missing函数有点像NoMethodError,它的消息是“undefined method`{method_name},for#{inspectVariableValue}:#{ClassName}”。NoMethodError:是从exception派生的类,是一个exception。在强动态类型语言中,如果试图对不存在该方法的类型使用该方法,则会引发错误类型异常 缺少的方法是一个函数 -http://ruby-doc.org/core/classes/Kernel.html#M005925 当obj被发送到 它无法处理的消息。符号是 调用的方法的符号,以及 args是任何被忽略的参数 传给它。默认情况下 当发生此错误时,解释器将引发错误 方法被调用。然而,事实并非如此 可以将该方法重写为 提供更动态的行为。这个 下面的示例创建了一个类Roman, 它用名称响应方法 由罗马数字组成, 返回相应的整数 价值观
我认为(在这一点上不要相信我)默认的method_missing函数有点像一个NoMethodError,它的消息是“undefined method`{method_name},for#{inspectVariableValue}:#{ClassName}”。我在代码中看到一个错误,除非应该启动一个块,否则,就像它是写的一样,这行什么都不做。 因此,这应该是可行的:
<%=h @contact.date_entered.to_date %></br>
Next event:
<% next_delayed_todo = @contact.next_delayed_todo %>
<% unless next_delayed_todo[:event].nil? do %>
<%= next_delayed_todo[:event].title %> </br>
<% end %>
下一项活动:
我看到您的代码中有一个错误,除非您应该启动一个块,否则,就像写入代码一样,该行什么也不做。
因此,这应该是可行的:
<%=h @contact.date_entered.to_date %></br>
Next event:
<% next_delayed_todo = @contact.next_delayed_todo %>
<% unless next_delayed_todo[:event].nil? do %>
<%= next_delayed_todo[:event].title %> </br>
<% end %>
下一项活动:
Hi,我确实有以下几行代码:嗯……所以不太确定要做什么……啊,很有趣……这是我本地的,但不是heroku,我想……让我做一些调整。Hi,我确实有以下几行代码:嗯……所以不太确定要做什么……啊,有趣…这是在我的本地,但不是在heroku,我想…让我做一些调整。虽然没有回答问题,但这是我需要做的有益的更改…谢谢+1它确实解决了您的问题,但我添加了一个注释,使其明确。虽然没有回答问题,这是我需要做的有帮助的改变…谢谢+1你的问题确实有解决方案,但我添加了一个注释,使其明确。