【发布时间】:2020-07-16 14:21:13
【问题描述】:
我们有以下型号...
class Post
has_many: :comments, as: :commentable
end
class Media
has_many: :comments, as: :commentable
end
class Comment
belongs_to: :commentable, polymorphic: true
belongs_to: :post, foreign_key::post_id, foreign_type: 'Post'
end
示例
Post1 has Comment3 => {id: 3, text: "Some comment 3", commentable_id: 1, commentable_type: 'Post'}
Media2 has Comment4 => {id: 4, text: "Some comment 4", commentable_id: 2, commentable_type: 'Media'}
When I want to access Comment3.post it gives result as expected.
But When some how want access Comment4.post it brings an object from post table which has id = 2, but expected nil, coz Comment4 does not belongs to any post.
我们可以在 Comment 模型中从下面的方法中获取,但是想要作为一个关联。
def post
self.commentable if self.commentable_type == 'Post'
end
无法达到我的预期..,请在此处提供帮助...
【问题讨论】:
标签: ruby-on-rails-4 associations