I have a infrastructure object composed for many datacenters. In the apps/admin/infrastructures.rb I have the following code:
form do |f| f.inputs "Infrastructure details" do f.input :name f.has_many :datacenters do |datacenter_form| datacenter_form.input :name end end f.buttons end
I can add datacenters with no problems but I don't know how I can delete it from infrastructure form.
Rails 5.1.4, ActiveAdmin 1.0.0
Append :id
and _destroy
in permit_params
along with other attributes from the model e.g. :name
in your case. Then provide the :allow_destroy
option in f.has_many
too. Other requirements remain the same; like adding allow_destroy: true
in accepts_nested_attributes_for
.
Final look:
ActiveAdmin.register Infrastructure do permit_params :name, datacenters_attributes: [:id, :_destroy, :name] form do |f| f.inputs "Infrastructure details" do f.input :name f.has_many :datacenters, heading: false, allow_destroy: true, new_record: false do |datacenter_form| datacenter_form.input :name end end f.buttons end end
ActiveAdmin Reference
This worked for me:
i.input :_destroy, as: :boolean
and in the Model remember to add :allow_destroy :
accepts_nested_attributes_for :images, allow_destroy: true
Solved adding the following line:
datacenter_form.input :_destroy, :as => :boolean, :required => false, :label => 'Remove'
The code looks like:
form do |f| f.inputs "Infrastructure details" do f.input :name f.has_many :datacenters do |datacenter_form| datacenter_form.input :name datacenter_form.input :_destroy, :as => :boolean, :required => false, :label => 'Remove' end end f.buttons end
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With