尽管被列入白名单,但 ActiveAdmin 未经允许的参数
ActiveAdmin Unpermitted Parameters despite being whitelisted
我已经像这样将参数列入白名单:
permit_params(%i{identity os current_ip clients site_ids sites domains})
但我在日志中得到以下信息:
{"utf8"=>"✓", "_method"=>"patch", "authenticity_token"=>"aU8vwoMbWcMikSQLSGuVo5XTF+sAopRi0+OhgxXYvSKD9UbLaImB3k+uhf03PpWNiwtrZrEv0wVpT9pIcCkyag==", "server"=>{"identity"=>"", "os"=>"UBUNTU 14.04", "current_ip"=>"123.245.23.24", "site_ids"=>["", "1"]}, "commit"=>"Update Server", "controller"=>"admin/servers", "action"=>"update", "id"=>"1"}
Server Load (0.2ms) SELECT "servers".* FROM "servers" WHERE "servers"."id" = LIMIT [["id", 1], ["LIMIT", 1]]
Unpermitted parameters: :site_ids
我的表格如下:
form do |f|
f.inputs "Server Details" do
f.input :identity
f.input :os, label: 'OS'
f.input :current_ip, as: :string
f.input :sites, as: :select, collection: Site.all
end
f.actions
end
尽管已列入白名单,但为什么不允许使用参数?
您需要为 site_ids
使用数组语法:
[:identity, :os, :current_ip, :clients, :sites, :domains, site_ids: []]
所以它会是这样的:
permit_params([:identity, :os, :current_ip, :clients, :sites, :domains, site_ids: []])
Rails 6
ActiveAdmin.register Record do
permit_params :start_date, :classroom_id, :teacher_id, group_ids: []
来自模特:
class Record < ApplicationRecord
has_and_belongs_to_many :groups, optional: true
我已经像这样将参数列入白名单:
permit_params(%i{identity os current_ip clients site_ids sites domains})
但我在日志中得到以下信息:
{"utf8"=>"✓", "_method"=>"patch", "authenticity_token"=>"aU8vwoMbWcMikSQLSGuVo5XTF+sAopRi0+OhgxXYvSKD9UbLaImB3k+uhf03PpWNiwtrZrEv0wVpT9pIcCkyag==", "server"=>{"identity"=>"", "os"=>"UBUNTU 14.04", "current_ip"=>"123.245.23.24", "site_ids"=>["", "1"]}, "commit"=>"Update Server", "controller"=>"admin/servers", "action"=>"update", "id"=>"1"}
Server Load (0.2ms) SELECT "servers".* FROM "servers" WHERE "servers"."id" = LIMIT [["id", 1], ["LIMIT", 1]]
Unpermitted parameters: :site_ids
我的表格如下:
form do |f|
f.inputs "Server Details" do
f.input :identity
f.input :os, label: 'OS'
f.input :current_ip, as: :string
f.input :sites, as: :select, collection: Site.all
end
f.actions
end
尽管已列入白名单,但为什么不允许使用参数?
您需要为 site_ids
使用数组语法:
[:identity, :os, :current_ip, :clients, :sites, :domains, site_ids: []]
所以它会是这样的:
permit_params([:identity, :os, :current_ip, :clients, :sites, :domains, site_ids: []])
Rails 6
ActiveAdmin.register Record do
permit_params :start_date, :classroom_id, :teacher_id, group_ids: []
来自模特:
class Record < ApplicationRecord
has_and_belongs_to_many :groups, optional: true