我有留言板。 User
可以创建新的Discussion
。 User
还可以为Post
创建新的Discussion
。
user.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 %>
discussion.rb
belongs_to :user
has_many :posts
post.rb
belongs_to :discussion
显然,post.user.first_name
行不起作用......
答案 0 :(得分: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