Rails Polymorphic Association - 拉出评论者名称

时间:2012-09-11 15:27:56

标签: ruby-on-rails polymorphic-associations

我的评论有多态关联设置。它最终正常工作并且正确地保存了所有数据。我无法通过这种关系来提出评论者的名字。

<div class="span5">
  <%= comment.commenter.name %>
  <%= comment.body %>
</div>

我的数据库中的数据正确用于评论。 Commenter对应于user_id。

<Comment id: 9, commenter: 2, subject: nil, body: "whaa", commentable_id: 1, commentable_type: "User", created_at: "2012-09-11 14:58:36", updated_at: "2012-09-11 14:58:36">

这里的模特:

class Comment < ActiveRecord::Base

  belongs_to :commentable, :polymorphic => true

  attr_accessible :body, :commentable_id, :commentable_type, :commenter, :subject

end


class User < ActiveRecord::Base

  has_many :comments, :as => :commentable

  accepts_nested_attributes_for :comments, :reject_if => lambda { |a| a[:body].blank? }

end

谢谢!

1 个答案:

答案 0 :(得分:2)

如果Comment的{​​{1}}是:commenter的{​​{1}}列的外键,则需要在User模型中定义此关系< / p>

:id

Comment模型中的另一面

belongs_to :commenter, class_name: "User", foreign_key: :commenter

现在,您可以访问User已编写的所有has_many :authored_comments, class_name: "Comment"

Comment

User 相关的评论(可能由他人撰写)

u = User.find(some_id)
u.authored_comments

以及某些User

的作者
u.comments