【发布时间】:2015-02-03 21:19:04
【问题描述】:
我想对我的代码提出建议,因为我不知道如何很好地使用 has_many 槽关联。
在我的情况下,用户可以标记为查看帖子。 他们可以创建帖子,也可以写关于帖子的注释。
这就是我所做的:
class User
has_many :posts, through: post_views
has_many :posts, through: comments
has_many :posts, through: notes
end
class Post
has_many :users, through: post_views
has_many :users, through: comments
has_many :users, through: notes
end
class PostView
belongs_to: user
belongs_to: post
end
class Comment
belongs_to: user
belongs_to: post
end
class Note
belongs_to: user
belongs_to: post
end
可以吗?我该怎么做才能有更好的代码?
编辑 = 在 Mohammad AbuShady 回答之后 类用户 has_many :post_views has_many :viewed_posts,通过: :post_views
has_many :comments
has_many :commented_posts, through: comments
has_many :notes
has_many :noted_posts, through: notes
end
class Post
has_many :post_views
has_many :viewer_users, through: post_views
has_many :comments
has_many :comments_users, through: comments
has_many :notes
has_many :notes_users, through: notes
end
class PostView
belongs_to: user
belongs_to: post
end
class Comment
belongs_to: user
belongs_to: post
end
class Note
belongs_to: user
belongs_to: post
end
还好吗?
谢谢
洛基
【问题讨论】:
标签: ruby-on-rails activerecord model