0
条件に基づいてビュー+レイアウトをレンダリングしようとしています。次のコードはうまくいくようですが、@objects
にアクセスできなくなります。私はProfilesController
メソッドでこのコードを呼び出します。初心者:条件に基づいて異なるビューとレイアウトを描画する@オブジェクトへのアクセスが遅い
@profiles = Profile.where(:user_id => current_user.id).first
if @profile.nil? == true
render :view => "show",
:layout => "application"
else
render :template => "profiles/my_profile",
:layout => "profiles"
end
は、出力を提供します:
undefined method `profiles' for nil:NilClass
どのように1は、条件に基づいてレンダリングすることができ、まだビューのレイアウトを設定する前のセット@objects
(@profiles
に、この場合のアクセス)
エラーは、 'nil'オブジェクトに対して' .profiles'メソッドを呼び出すことです。トレースに行番号があるはずです。それは何のオブジェクトですか、そしてそれはどこに初期化されていますか? – Baldrick
@profileオブジェクトは空であるため、else部分の下のレンダリングがこれを破るようです。 – Rubytastic