我正试图解决这个问题。我知道视图中不应该有那么多逻辑。我有一个包含用户、帖子和评论的应用程序。用户有很多帖子和评论。
class User < ActiveRecord::Base
has_many :posts
has_many :comments
帖子属于用户,有很多评论。
class Post < ActiveRecord::Base
has_many :comments
belongs_to :user
评论属于用户和帖子
class Comment < ActiveRecord::Base
belongs_to :post
belongs_to :user
在我的帖子#show 视图中,我在帖子下显示评论。我想显示发表评论的用户的姓名。目前,我认为:
<% @post.comments.each do |comment| %>
<p>
<b>Commenter:</b>
<%= link_to User.find(comment.userid).login, User.find(comment.userid) %>
</p>
<p>
<b>Comment:</b>
<%= comment.body %>
</p>
<% end %>
我可能应该在我的帖子控制器中有这个逻辑。但我很困惑。@post.comments 返回属于该帖子的评论数组(?)。这意味着我不能拥有@commenter = @post.comments.userid。我对这个问题感到困惑,所以我可能没有很好地解释它。