0
我有一個留言板。 A User
可以創建一個新的Discussion
。 A User
也可以創建一個新的Post
到Discussion
。has_many:通過
user.rb
has_many :discussions
has_many :replies, through: :discussions, source: :posts
所以一個Discussion
有很多Posts
屬於許多不同的Users
。 在我的show
頁面上,我想顯示所有Posts
及其對應的Users
。我知道我可以通過user.replies
獲得一個User's
的帖子。但我無法弄清楚如何做相反的事情:得到User
,如果我有Post
?
這是我到目前爲止有:
<% @posts.each do |post| %>
<div class="discussion_right">
<div class="discussion_head">
<% t = post.created_at %>
<%= t.strftime("Posted on %b %-d, %Y %l:%M %P") %>
</div>
<div class="discussion_body">
<%= post.body %>
</div>
</div>
<div class="discussion_left">
<div class="discussion_head">
<%= post.user.first_name %>
</div>
</div>
<% end %>
discussion.rb
belongs_to :user
has_many :posts
post.rb
belongs_to :discussion
明顯的線post.user.first_name
不起作用...
這裏是如何我創建了一個新帖子:'@discussion = current_user.discussions.build(params [:discussion])'但這隻設置帖子的discussion_id而不是帖子的user_id。我怎樣才能設置它們? (我正在使用'accep_nested_attributes_for:posts'來設置Post值) – mikeglaz 2013-03-13 23:55:18
您必須手動將'user_id'傳遞給後期哈希或在視圖中爲'user_id'添加'hidden_field'。 – jvnill 2013-03-14 00:00:09
如果'has_many:through'通過user.replies語法給每個用戶發帖子,我覺得每個帖子都必須有一個連接返回給他們的用戶。 – mikeglaz 2013-03-14 00:04:21