2011-03-29 87 views
0

我希望能夠將帖子與創建帖子的用戶相關聯。「發佈」發佈者爲「用戶」協會

到目前爲止,我有:

belongs_to :user in my post.rb 

has_many :post in my user.rb 

我知道我的東西添加到我的職位控制器,但我不知道是什麼。我希望我的每個帖子都有一個「發佈者:(用戶信息在這裏)」...

任何幫助?提前致謝。

+0

答案並沒有提到你對帖子控制器的問題。但是,除了引用通過您在模型中進行的關聯關聯的用戶之外,在帖子控制器中沒有什麼特別的。只要你有一個有效的'Post'對象,你的關聯就會觸發一個查詢,這個查詢會根據你的需要提取'User'。 – rynmrtn 2011-03-29 23:35:48

+0

我不明白爲什麼我不斷收到這個錯誤「未定義的方法'用戶名'爲零:NilClass」。我有兩個belongs_to:我的「發佈」模型中的用戶和has_many:我的「用戶」模型中的帖子... – ChrisBedoya 2011-07-26 00:47:16

回答

2

您可以通過做訪問用戶:

@post.user 

所以,你可能有:

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

其中@post就是後存在的變量。

你可以在你的情況here

要回答你的問題在鐵軌here關聯設定閱讀起來,更具體,不,你並不需要此功能工作做任何事情來你的控制器。

+0

嗨。當我添加代碼時,我得到未定義的方法'用戶名'。是否必須向帖子控制器添加一些內容才能自動將帖子與創建該帖子的用戶相關聯? – ChrisBedoya 2011-03-30 00:09:37

+0

用戶名只是用戶的示例屬性。我不確定你的用戶模型是什麼樣的。使用標識該用戶的任何屬性(名稱,名字等)。 – 2011-03-30 00:10:06

+0

這是我的User.rb類用戶 ChrisBedoya 2011-03-30 00:20:03

0

您可以通過使用belongs_toPost對象定義的user方法引用此關聯:

<%= post.user.name %> 

可以讀取更多的associations guide

+0

繼續收到此錯誤未定義的方法'用戶名'爲零:NilClass – ChrisBedoya 2011-07-26 00:42:51

+0

@ChrisBedoya:這意味着您正在訪問的帖子沒有與其關聯的用戶對象。您必須通過在該帖子對象上設置'user_id'字段來將帖子關聯到用戶。 – 2011-07-26 05:52:29

+0

感謝您的迴應,但因爲我只是學習鋼軌,我不知道在哪裏添加。錯誤不斷指向我post_controller.rb我試圖在「顯示」部分添加這個@ post.user_id = current_user.username ,因爲那裏的錯誤顯示,但我得到相同的用戶名錯誤 – ChrisBedoya 2011-07-26 23:22:09