gpt4 book ai didi

ruby-on-rails - NoMethodError "undefined method ` email' 为 nil :NilClass"

转载 作者:行者123 更新时间:2023-12-04 05:58:51 24 4
gpt4 key购买 nike

在我的一个观点中,我对以下代码有疑问:

<% @blog.comments.each do |comment| %>
<h3><%= comment.user.email %></h3>
</div>
<% end %>

产生错误:

NoMethodError in Blogs#show
...
undefined method `email' for nil:NilClass

但是下面的代码没有错误:

<% @blog.comments.each do |comment| %>
<%= comment.body %>
<% end %>

评论声明为:

class Comment < ActiveRecord::Base
belongs_to :blog
belongs_to :user
end

并且电子邮件属性可以在另一个 View 中访问为:

<% @users.each do |user| %>
<tr>
<td><%= link_to user.username, user %></td>
<td><%= user.email %></td>
</tr>
<% end %>

在我看来,comment.user 没有被识别为用户模型的实例。我做错了什么?

最佳答案

在尝试对其调用方法之前,您需要检查 comment.user 是否为 nil。 if 语句可以为您做到这一点:

<% @blog.comments.each do |comment| %>
<h3><%= comment.user.email if comment.user %></h3>
</div>
<% end %>

关于ruby-on-rails - NoMethodError "undefined method ` email' 为 nil :NilClass",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6330435/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com