index form custom callbacks all active ruby-on-rails rubygems activeadmin

ruby-on-rails - form - custom controller activeadmin



¿Cómo eliminar el formulario de opción de eliminación activeAdmin? (4)

En algún momento tuve este problema, debido al método de destrucción, el botón ''Eliminar'' no desapareció

actions :all, except: [:destroy] controller do def destroy # => Because of this the ''Delete'' button was still there @user = User.find_by_slug(params[:id]) super end end

in rails gem active admin Quiero eliminar la opción de eliminar de las acciones predeterminadas mientras necesito editar y mostrar la acción, ¿hay alguna forma de hacerlo?


La respuesta aceptada arrojó una excepción, "número incorrecto de argumentos", así que hice esto para excluir el botón de eliminar (: destruir acción)

ActiveAdmin.register YourModel do actions :index, :show, :new, :create, :update, :edit index do selectable_column id_column column :title column :email column :name actions end


Si desea eliminar el botón Quitar el destruir por completo, use: actions: all, excepto: [: destroy]

Pero si el botón de eliminar necesita una condición basada en las propiedades del recurso (por ejemplo, datos asociados o estado).

En la página de índice: index do ...... ...... valores predeterminados de acciones: false do | row | ¿si puede? : leer, fila text_node link_to "View", admin_resource_path (row), clase: "view_link" final si se puede? : edit, row text_node link_to "Edit", admin_resource_path (row), clase: "edit_link" final si se puede? : destroy, row text_node link_to I18n.t (''active_admin.delete''), admin_resource_path (row), método:: delete, data: {confirm: I18n.t (''active_admin.delete_confirmation'')), class: "delete_link" si row.deletable? final fin

fin

Ahora la parte compleja y tuve que golpearme la cabeza varias veces para controlarla en la página de presentación:

config.remove_action_item (: destroy) # eliminará el botón de destruir

solo action_item:: show do

link_to I18n.t(''active_admin.delete''), admin_resource_path(resource), method: :delete, data: { confirm: I18n.t(''active_admin.delete_confirmation'') }, class: "delete_link" if resource.deletable?

fin

Lo siento por mi terrible formato.


Agrega una llamada a actions a cada recurso de Active Admin:

ActiveAdmin.register Foobar do actions :all, :except => [:destroy] end