我有一个应用程序,您可以在其中撰写文章,其他用户可以根据自己的喜好对文章进行投票。但不幸的是,投票系统运作不正常。在文章收到第一次投票后,其他用户无法对同一篇文章进行投票,这是我的代码:
评论模型
class Review < ActiveRecord::Base
belongs_to :user
belongs_to :article
validates_uniqueness_of :article_id, scope: :user_id
end
物品管理员
def upreview
@article = Article.find(params[:id])
@article.reviews.create
redirect_to(:back)
end
答案 0 :(得分:2)
我猜这种情况正在发生,因为:user_id
是nil
。换句话说,验证工作正常,并且您只能为Review
:user_id
nil
的每篇文章创建一个@article.reviews.create(user: current_user)
。
也许你可以这样做::user_id
。这将设置{{1}}属性。