2009-07-22 7 views
0

私はユーザーと登録の間に1対1のhas_one/belongs_to関係を持っています。 1人のユーザが1つの登録を有する。関連付けられたオブジェクトは、Railsのビューでアクセスできません。 nilオブジェクトエラー

私はビューでユーザーを反復処理し、その登録情報(フォローするソース)を表示しようとすると、私は次のエラーを取得する:

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

ActionView::TemplateError: You have a nil object when you didn't expect it! The error occurred while evaluating nil.registration_code

ここで問題のビューのコードです私users_controller.rbで

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

答えて

3

ここでの可能性の問題は、あなたがFiのだということです関連する登録なしで特定のユーザを見つける - つまりそのユーザではない== nilですが、そのuser.registration == nilなので、存在しない関連する登録オブジェクトに対してregistration_code()を呼び出そうとすると文句を言います

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

それはそれを解決します。 – Swanand

関連する問題