【问题标题】:ActiveAdmin Unpermitted Parameters despite being whitelisted尽管被列入白名单,但 ActiveAdmin 未经允许的参数
【发布时间】:2017-10-02 07:53:42
【问题描述】:

我已将参数列入白名单,如下所示:

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" = $1 LIMIT $2  [["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

为什么参数被列入白名单却不允许使用?

【问题讨论】:

    标签: ruby ruby-on-rails-5 activeadmin


    【解决方案1】:

    site_ids需要使用数组语法:

    [:identity, :os, :current_ip, :clients, :sites, :domains, site_ids: []]
    

    所以应该是这样的:

    permit_params([:identity, :os, :current_ip, :clients, :sites, :domains, site_ids: []])
    

    【讨论】:

      【解决方案2】:

      导轨 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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-02
        相关资源
        最近更新 更多