我的评论有多态关联设置。它最终正常工作并且正确地保存了所有数据。我无法通过这种关系来提出评论者的名字。
<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
谢谢!
答案 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