我有3个基本模型:文章,评论和用户。目前,评论嵌套在文章中,但文章的所有评论都显示在文章展示页面上。 我的问题是评论应该属于用户和文章。现在,在我的comments_controller的创建操作中,很难同时执行2个构建操作。我基本上要既是Rails 3 - 多态协会唯一的选择?
@comment = @article.comments.build(params[:comment])
和
@comment = @user.comments.build(params[:comment])
我comments_controller同创建行动
。如果我没有错,当然你不能同时执行两行。至少它不会做我想要的。
在我的评论中,我想调用评论的用户信息来获取user_name和他的头像。我可以一个USER_NAME列添加到我的意见表,并处理与
@user = current_user
@comment = @article.comments.build(params[:comment])
@comment.user_name = @user.name
但这是有点笨拙,得到的复杂,当我想通过回形针插件,显示评论的用户的化身。
为用户和文章模型的“可评论”界面使用多态关联构建2条关联评论(包含文章和用户)的唯一可能方式?我觉得即使这样做并不是真正的逻辑清洁,因为用户并不真正评论,而只是发表评论。当然,这种逻辑的缺乏对于应用程序来说不会是一个问题,但是在我看来,除了一个模型以外,还有其他解决方案吗? 任何帮助表示赞赏!谢谢!
一般来说,我会同意这种做法,但user_id我认为是一个太敏感的信息,以至于把它放在一个隐藏的领域。有人可以很容易地通过改变该ID通过萤火虫或其他用户评论。我昨天有这个想法,但作为用户登录进行检查,用萤火虫操纵隐藏字段中的user_id,实际上我能够以任何我想要的用户的方式发表评论。只有隐藏字段应该用于没人愿意操纵我想的属性。 –
是的。那么你可以从另一侧解决它。我会更新我的答案。 – evanbikes
我认为这是一个好主意。所以做一个'@comment = @ user.comments.build(params [:comment])'并通过隐藏字段创建文章关联是没有问题的,因此没有兴趣操纵它。 –