【问题标题】:Rails ActiveAdmin Unpermitted parameterin has_many through relationRails ActiveAdmin Unpermitted parameterin has_many through relationship
【发布时间】:2018-01-24 10:29:34
【问题描述】:

我有一个 has_may through 关系

class Isicclase < ActiveRecord::Base
  belongs_to :isic_grupo
end

class Configuracion < ActiveRecord::Base
   has_many :configuracion_isicclases
   has_many :isicclases, through: :configuracion_isicclases
   accepts_nested_attributes_for :configuracion_isicclases, :allow_destroy => true
end

class ConfiguracionIsicclase < ActiveRecord::Base
  belongs_to :configuracion
  belongs_to :isicclase
end

第二个模型(配置)的 ActiveAdmin 注册

ActiveAdmin.register Configuracion do
  config.filters = false
  menu parent: '☰ Entorno', label: 'Configuración', priority: 1

  actions :all, except: [:destroy]
 permit_params :comercial, :social, :polcorreo, :personal, :bienvenida, :localizacion, :galleta, :slogan1, :slogan2, :logo, :logo_file_name, :privacidad, :aviso_legal, :locale, :proteccion_de_datos, configuracion_isicclases_attibutes: [:id, :configuracion_id, :isicclase_id, :_destroy] 
   form do |f|
      f.actions
       f.semantic_errors *f.object.errors.keys
      f.inputs "Configuración" do
         tabs do
            tab 'Empresa' do
                  f.has_many :configuracion_isicclases, heading: false,  :allow_destroy => true do |deg|
                    # deg.input :isicclase
                    deg.input :isicclase, label: 'Código ISIC', :collection => Isicclase.all.map{|x|[x.codigo + "-" + x.titulo,x.id]}, include_blank: false 
                  end

                  f.input :comercial
                  f.input :social
                  f.input :polcorreo
                  f.input :slogan1
                  f.input :slogan2
                  f.input :logo, :as => :file, :hint => image_tag(f.object.logo.url(:icon)) 
            end 
.......

end

当我尝试通过 configuracion 创建一个新的寄存器 configuracion_isicclases 时,我在日志文件中获得了一个未经允许的参数错误

Unpermitted parameter: configuracion_isicclases_attributes

日志文件中的参数是

Parameters: configuracion"=>{"configuracion_isicclases_attributes"=>{"0"=>{"isicclase_id"=>"417", "_destroy"=>"0", "id"=>"1"}, "1"=>{"isicclase_id"=>"3", "_destroy"=>"0", "id"=>"2"}, "2"=>{"isicclase_id"=>"1"}}, "comercial"=>"Costiña",......}

【问题讨论】:

  • 您想将其作为复选框还是选择?
  • 我在这张表中有很多可能性。无法放置复选框。我认为最好选择一个。

标签: ruby-on-rails activeadmin has-many-through


【解决方案1】:

请尝试此解决方案,如果有任何单数或复数问题,请更正

在你的configuracions.rb中

permit_params :comercial, :social, :polcorreo, :personal, :bienvenida, :localizacion, :galleta, :slogan1, :slogan2, :logo, :logo_file_name, :privacidad, :aviso_legal, :locale, :proteccion_de_datos, :isicclas_ids => [] 

f.input :isicclases, as: :select, :collection => Isicclase.all.map{|x|[x.codigo + "-" + x.titulo,x.id]}, include_blank: false 

【讨论】:

  • 是的,我认为我们需要在活动管理员注册器中使用 has_many 选项,因为我们在 configuracion_isicclase 表中需要很多注册器。如果我们把 select 不带 has_many 选项,我们只能引入一条记录。
  • 选择框选择多个值需要添加multiple: true
  • 不允许的参数:isicclase_ids
  • 很高兴知道:)
猜你喜欢
  • 1970-01-01
  • 2019-03-04
  • 2014-09-01
  • 1970-01-01
  • 2011-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-30
相关资源
最近更新 更多