用户可以创建帖子。帖子有评论。评论必须同时属于用户和帖子,但不一定是创建帖子的用户。以下是建模的最佳方法:
class User < ActiveRecord::Base
has_many :posts
has_many :comments
end
class Post < ActiveRecord::Base
belongs_to :user
has_many :comments
end
class Comment < ActiveRecord::Base
belongs_to :user
belongs_to :post
end
如果是这样,确保的最佳做法是什么:
user.comments.new
无法调用。我希望使用与之关联的post
创建所有新帖子。id
post.comments.new
醇>
否则,建立这种关系的更好方法是什么?
答案 0 :(得分:1)
你的模特很好。
要设置评论的作者,您必须在控制器中执行此操作:
@comment = post.comments.new do |c|
c.user = current_user
end
请勿使用user.comments.new
。为什么你想让它无法使用呢?