2011-03-29 14 views
0

投稿を投稿したユーザーと投稿を関連付けることができます。"Post" "User" associationによって投稿されました

は、これまでのところ私が持っている:

belongs_to :user in my post.rb 

has_many :post in my user.rb 

私は私の記事のコントローラに何かを追加する必要があります知っているが、私は何を知りません。投稿ごとに「投稿者:(ユーザー情報はここにあります」)... ...

助けが必要ですか?前もって感謝します。

+0

回答が投稿コントローラに関するあなたの質問を参照していませんでした。ただし、投稿コントローラで行う必要があることは特別なことはありません。ただし、モデルで作成した関連付けに関連付けられているユーザーを参照してください。あなたが有効な 'Post'オブジェクトを持っている限り、あなたの関連はあなたが望むように' User'を引っ張るクエリを引き起こします。 – rynmrtn

+0

私はなぜこのエラー "未定義のメソッド' username 'for nil:NilClass "が出てくるのか理解できません。私は "投稿"モデルのbelongs_to:ユーザーとhas_many:私の "ユーザー"モデルの投稿を持っています... – ChrisBedoya

答えて

2

次の操作を行うことにより、ユーザーにアクセスすることができます。

@post.user 

だからあなたが持っているかもしれません:

@post
Posted By: <%= @post.user.username %> 

はポストが存在する変数です。あなたは、あなたの質問に答えるためにhere

をレールhereでassocationsをよく読んで、より具体的には、あなたのケースででき

、いいえ、あなたは仕事に、この機能のためにあなたのコントローラに何もする必要はありません。

+0

こんにちは。私はコードを追加するとき、私は未定義のメソッド 'username 'を取得しています。投稿を作成したユーザーに投稿を自動的に関連付けるには、投稿コントローラに何かを追加する必要がありますか? – ChrisBedoya

+0

usernameは、ユーザーのサンプル属性です。あなたのUserモデルがどのようなものかわかりません。そのユーザーを識別する任意の属性(名前、名など)を使用します。 –

+0

これは私のUser.rbクラスです。User ChrisBedoya

0

あなたはbelongs_toによってPostオブジェクトに定義されたuser方法を使用してこの関連付けを参照することができます。

<%= post.user.name %> 

あなたはassociations guideで詳細を読むことができます。

+0

このエラーは未定義です。メソッド名 'nil:NilClass – ChrisBedoya

+0

@ChrisBedoya:これは、アクセスしている投稿にUserオブジェクトが関連付けられていないことを意味します。その投稿オブジェクトに 'user_id'フィールドを設定することによって、投稿をユーザーに関連付ける必要があります。 –

+0

レスポンスありがとうが、私はちょうどレールを学んで以来、私は正確にそれを追加するか分からない。エラーが表示されているpost_controller.rb私はこの@ post.user_id = current_user.usernameを追加しようとしました エラーが表示されていたthats以来、 "ショー"部分では、私は同じユーザー名エラーを取得します – ChrisBedoya

関連する問題