activeadmin: adding delete for a nested resource

前端 未结 6 1899
我在风中等你
我在风中等你 2021-02-12 10:42

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 \"Infrastruc         


        
6条回答
  •  谎友^
    谎友^ (楼主)
    2021-02-12 11:14

    Sep 2017 Update:

    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
    

提交回复
热议问题