2009-04-16 10 views
0

私のRailsアプリケーションでは、RESTful認証で構築されたUserモデルと、そのユーザに属する他のモデルがあります。 したがって、たとえば、のは言わせて:異なる状態のユーザオブジェクトにアクセスする(Ruby on Rails、RESTful認証)

ユーザーにhas_many:ポスト

ポストbelongs_toの:どこでもユーザーがユーザー

私が期待するように私は、ユーザー変数にアクセスできるリソース。 @ user.name、@ user.email、@ user.loginなどはすべて、期待されるオブジェクトを返します。

しかし、他のリソース(この例では投稿)からこれらの属性にアクセスすることはできません.Nil(NoMethodErrorではなくnil)が返されません。

これはなぜですか? 、current_user.emailのようにcurrent_userと呼んでも問題ありません。

答えて

1

ここでは2人のユーザーが話しています。
1)現在 2ユーザ
ログイン)ポストはCURRENT_USERを介してアクセスすることができなければならない

現在ログインしているユーザーに属するユーザー。ポストが属する ユーザーが投稿コントローラに設定する必要があります:応答のための

@user = Users.find(@post.user_id) 

または

@user = @post.user 
+0

感謝を。ポスト/ショーから投稿が所属するユーザーの名前にアクセスしようとしているとします。名前はUsersリソースの@ user.nameになります。現在、ポストコントローラのショーでは、@ post = post.find(params [:id]、@user)。 – btw

+0

投稿を追加したユーザの名前にアクセスしようとすると(PostsControllerで)@post = Post.find(params [:id])というユーザを設定してから、ユーザ@user = @ postを設定します。ユーザー。次に、ビューで:投稿者<%= @ user.name%>。 HTH –

+0

これは奇妙なことですが、あなたは私が期待するものを正確に言っていますが、問題は持続しています。私は気づいていないことが何のために起こっているのだろうかと思っています。 – btw

関連する問題