为什么会收到此错误消息?我正在努力使每个视频的帐户名显示出来。用户和帐户自行完美运行。如果我不包含.account_name,我只会得到一个丑陋的存储代码: 我想我对如何访问对象中对象的字段感到困惑。
视频#index中的NoMethodError 未定义的方法`account_name'代表nil:NilClass
<% @videos.each do |video|%>
<tr>
<td><%= video.file %></td>
**<td><%= video.user.account_name %></td>**
<td><%= video.name %></td>
</tr>
<% end %>
答案 0 :(得分:1)
显然,Video
没有User
。
改变这个:
<td><%= video.user.account_name %></td>
到此:
<td><%= video.user.try(:account_name) %></td>
答案 1 :(得分:1)
确保您在模特之间建立了关系。
应用/模型/ user.rb 强>:
class User < ActiveRecord::Base
has_many :videos
end
应用/模型/ video.rb 强>:
class Video < ActiveRecord::Base
belongs_to :user
end
这使您可以执行以下操作:
$ rails console
> v = Video.first
> v.user.account_name
> u = User.first
> u.videos