导轨 5 强参数不允许主模型



这让我很沮丧。

我有一个相对简单的设置,但由于某种原因,我尝试通过的主要模型是不允许的。

日志如下所示:

Started POST "/statements" for ::1 at 2019-12-05 23:19:37 +1300
Processing by StatementsController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"O4Ye+SFx7kGUceDKJlXs8A0FlH/e7r08xpLpDuICHmgAqaxw/e0UV8AR1pUZGhGlWKOcePtt3LXM7rsXXNTbGw==", "statement"=>{"content"=>"…all people are created equal.", "tags"=>"politics, equality", "parent_id"=>"dagCzw"}, "commit"=>"Submit variant and agree"}
Unpermitted parameters: :authenticity_token, :statement

statement是我试图做的一件事 - 但它是不允许的,并且创建的语句总是填充 nil 属性。

感谢您对此的任何帮助!

删去希望不相关的部分:

声明.rb

class Statement < ApplicationRecord

新.html.erb

<%= render partial: "statements/partials/new_statement_form",
locals: {statement: @statement, parent: @parent} %>

_new_statement_form.html.erb

<%= form_for(statement) do |f| %>

statements_controller.rb

def new
Rails.logger.debug "nn-------- new ---------nn"
@statement = Statement.new
@content = "…"
if params[:parent].present?
@parent = Statement.find_by_hashid(params[:parent])
@content += "#{@parent.content}."
end
end
.
.
.
def create
if create_params[:parent_id]
Rails.logger.debug "nnCreate childnn"
@statement = Statement.find_by_hashid(create_params[:parent_id]).children.create(create_params[:statement])
else
Rails.logger.debug "nnCreate rootnn"
@statement = Statement.new(create_params[:statement])
end
.
.
.
def create_params
params.require(:statement).permit(:content, :tags, :parent_id)
end

呃,用户错误。

该错误实际上是在属性的名称中 - 它的形式应该tag_list而不是tags,以便嵌套属性正常工作。

我错误地将Unpermitted parameters: :authenticity_token, :statement行解读为确定的 - 我想白名单发生在该日志行之后。

谢谢大家的问题和帮助。

最新更新