在Rails中的视图中无法访问的关联对象?零对象错误

时间:2009-07-22 02:48:11

标签: ruby-on-rails ruby model-view-controller

我在用户和注册之间有1:1的has_one / belongs_to关系。一个用户只有一个注册。

当我尝试在视图中迭代用户并显示他们的注册信息(要跟随的来源)时,我收到以下错误:

  

ActionView :: TemplateError:当你没想到它时,你有一个nil对象!评估nil.registration_code

时发生错误

以下是令人讨厌的观看代码:

<% @users.each do |user| %>
<%= user.registration.registration_code %>
<% end %>

在我的users_controller.rb中:

def users_registration_codes
  @users = User.find(:all)
end

1 个答案:

答案 0 :(得分:3)

这里可能存在的问题是你找到了一个没有相关注册的特定用户 - 即不是那个用户== nil,而是user.registration == nil所以当你尝试调用registration_code()时它会抱怨不存在的相关注册对象

尝试

<% @users.each do |user| %>
  <%= user.registration.registration_code if user.registration %>
<% end %>