0

我有一个留言板。AUser可以创建一个新的Discussion. AUser也可以为 a 创建一个新PostDiscussion

用户.rb

has_many :discussions 
has_many :replies, through: :discussions, source: :posts

所以一个Discussion有很多Posts属于很多不同的Users。在我的show页面上,我想显示所有Posts和它们对应的Users. 我知道我可以User's通过user.replies. 但我不知道如何做相反的事情: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 %>

讨论.rb

belongs_to :user
has_many :posts

post.rb

belongs_to :discussion

显然这条线post.user.first_name不起作用......

4

1 回答 1

0

如果用户可以创建帖子,那么您需要添加user_id到帖子并添加belongs_to关系

rails g migration add_user_id_to_posts user_id:references
rake db:migrate

# post.rb
belongs_to :user

那么你应该能够查询post.user

于 2013-03-13T23:41:36.767 回答