Ruby on rails Postgres类型数组的Rails 4未经允许的参数

Ruby on rails Postgres类型数组的Rails 4未经允许的参数,ruby-on-rails,postgresql,ruby-on-rails-4,Ruby On Rails,Postgresql,Ruby On Rails 4,我最近执行了一次迁移,将字符串列转换为Postgres数组。迁移情况如下: def change change_column :projects, :layout_slug, "varchar[] USING (string_to_array(layout_slug, ','))" end 现在,我遇到了一个关于未授权参数的问题:layout\u slug。我已经尝试了其他StackOverflow问题的所有公认答案,但它们仍然不适合我。以下是我迄今为止尝试过的所有变体: de

我最近执行了一次迁移,将
字符串
列转换为Postgres数组。迁移情况如下:

  def change
    change_column :projects, :layout_slug, "varchar[] USING (string_to_array(layout_slug, ','))"
  end
现在,我遇到了一个关于
未授权参数的问题:layout\u slug
。我已经尝试了其他StackOverflow问题的所有公认答案,但它们仍然不适合我。以下是我迄今为止尝试过的所有变体:

def project_params
    params.require(:project).permit(:image_slug, { layout_slug: [] }, :category, ..., :selection => [:inputs => Project::ALLOWED_INPUTS.keys])
end

def project_params
    params.require(:project).permit(:image_slug, { :layout_slug => [] }, :category, ..., :selection => [:inputs => Project::ALLOWED_INPUTS.keys])
end
然后,我尝试删除
:layout\u slug=>[]
周围的括号,但出现了一个错误:

SyntaxError (/.../app/controllers/api/v1/projects_controller.rb:62: syntax error, unexpected ',', expecting =>
... :layout_slug => [], :category, :subcategory, :version, :ema...
...                               ^
/.../app/controllers/api/v1/projects_controller.rb:62: syntax error, unexpected ')', expecting keyword_end
/.../app/controllers/api/v1/projects_controller.rb:165: syntax error, unexpected end-of-input, expecting keyword_end):

# THIS ONE THROWS A SYNTAX ERROR
def project_params
    params.require(:project).permit(:image_slug, :layout_slug => [], :category, :subcategory, :version, :email, :zip_code, :selection => [:inputs => Project::ALLOWED_INPUTS.keys])
end
于是我把
layout\u slug
移到了末尾,它又返回到抛出
Unpermitted参数:layout\u slug
错误

# This throws the same Unpermitted parameters error as before
def project_params
    params.require(:project).permit(:image_slug, ..., :selection => [:inputs => Project::ALLOWED_INPUTS.keys], :layout_slug => [])
end
我对拼写进行了两次和三次检查,并验证了前端是否正在提交数组


我错过了什么??我的迁移有什么问题吗?或者我的许可证方法有什么明显的错误吗?

我已经测试了您的示例代码,看起来还不错:

raw_parameters = { :image_slug => "some_slug", :category => "A", :layout_slug => ["a", "b"] }
parameters = ActionController::Parameters.new(raw_parameters)
parameters.permit(:image_slug, :category, :layout_slug => []) 
# {"image_slug"=>"some_slug", "category"=>"A", "layout_slug"=>["a", "b"]}
检查您的参数
:layout_slug
格式,可能就是这样