gpt4 book ai didi

ruby-on-rails - 收到 ActiveModel::ForbiddenAttributesError 时如何查找属性

转载 作者:行者123 更新时间:2023-12-04 15:44:51 25 4
gpt4 key购买 nike

当使用 strong_params 并获得 ActiveModel::ForbiddenAttributesError 时异常(exception),我如何找出哪个属性被禁止?我刚从 attr_accessible 转过来并且调试消息通常在那里非常好,但在切换到强参数时则不然。

我收到此错误:

ActiveModel::ForbiddenAttributesError in SnippetsController#create

这是一个嵌套模型。
def snip_params
params.require(:snippet).permit(:content, :approved, :user_id, :book_id)
end

在我使用过的父级中
has_nested_attributes :snippets

创造
def create
@snippet = @book.snippets.create(snip_params)
@snippet.user = current_user
if @snippet.save
redirect_to @book
flash[:success] = "Snippet submitted and awaiting approval."
else
flash[:base] = "Someone else has submitted a snippet, please try again later"
redirect_to @book
end
end

参数内容:
{"utf8"=>"✓",
"authenticity_token"=>"bTRSwFRIhN3l3DkkWPtLzpoQHYD+CezmJQLw8Oz5+3g=",
"snippet"=>{"content"=>"<p>AAAAAAAAAAAAA</p>\r\n"},
"commit"=>"Create Snippet",
"book_id"=>"1"}

最佳答案

最初禁止所有属性。仅当您不允许任何属性时才会引发此异常。如果您允许某些参数而不允许其他参数,那么日志输出会告诉您哪些参数不被允许。

 params = ActionController::Parameters.new(name: 'Bob', age: 24) 
#params are usually set automatically in the controller
Person.new(params)

以上将引发异常
 Person.new(params.permit(:name))

这将创建一个名为“Bob”的人,日志输出还将包含:
Unpermitted parameters: age

关于ruby-on-rails - 收到 ActiveModel::ForbiddenAttributesError 时如何查找属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20287184/

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