gpt4 book ai didi

cancan - 带有 CanCan : unknown attribute error after including load_and_authorize_resource 的 Rails 4

转载 作者:行者123 更新时间:2023-12-01 15:21:39 26 4
gpt4 key购买 nike

我在 Rails 4 中工作,并且根据 this issue 中的说明让 CanCan 工作得很好,除了我认为可能相对常见的一个用例。

我有一个 Comment 模型,其中 has_many :comments, through: :replies 用于嵌套评论。所有这些都运行良好,直到我将 load_and_authorize_resource 添加到我的评论 Controller 。问题似乎源于向我的创建操作发送可选 :parent_comment_id 属性的隐藏字段。

我已经通过强参数允许了这个属性:

def comment_params
params.require(:comment).permit(:content, :parent_comment_id, :post_id, :comment_id, :user_id)
end

这样我就可以在包含 :parent_comment_id 时创建关联:

if comment_params[:parent_comment_id] != nil
Reply.create({:parent_comment_id => comment_params[:parent_comment_id], :comment_id => @comment.id})
end

但是一旦我添加了 load_and_authorize_resource,我就得到了 :parent_comment_id 的未知属性错误。我错过了什么?

最佳答案

我在睡梦中找到了解决方案。这是我为解决问题所做的工作:

唯一的原因comment_params通常在创建时没有问题,是因为我排除了额外的 :parent_comment_id参数,像这样:

@comment = post.comment.create(comment_params.except(:parent_comment_id))

当 CanCan 使用 comment_params 时然而,它没有这样的卫生设施。因此,问题。在每个 Controller 的基础上将卫生添加到 CanCan 会很麻烦,所以我做了我应该一直做的事情,而不是通过 :parent_comment_id里面:comment , 我用过 hidden_field_tag将其传递到 :comment 之外并通过普通的旧 params 访问它.

我希望这对犯类似错误的其他人有所帮助!

关于cancan - 带有 CanCan : unknown attribute error after including load_and_authorize_resource 的 Rails 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17242116/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com