in rails gem active admin Я хочу удалить параметр delete из default_actions, пока мне все еще нужно действие edit и show, есть ли способ сделать это?
Как удалить опцию удаления activeAdmin?
Ответ 1
Вы добавляете вызов actions
к каждому ресурсу Active Admin:
ActiveAdmin.register Foobar do
actions :all, :except => [:destroy]
end
Ответ 2
В какой-то момент у меня была эта проблема, из-за метода destroy кнопка "Удалить" не исчезла
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
Ответ 3
Принятый ответ породил исключение "неправильное количество аргументов", поэтому я сделал это, чтобы исключить кнопку удаления (: destroy action)
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
Ответ 4
Если вы хотите полностью удалить кнопку уничтожения, используйте: действия: все, кроме: [: destroy]
Но если кнопка удаления требует условия на основе свойств ресурса (например, связанных данных или состояния).
На индексной странице: индекс делает ...... ...... действия defaults: false do | row | если можешь?: чтение, строка text_node link_to "View", admin_resource_path (строка), класс: "view_link" конец если можешь?: редактировать, строка text_node link_to "Edit", admin_resource_path (строка), класс: "edit_link" конец если можешь?: уничтожить, выровнять text_node link_to I18n.t('active_admin.delete'), admin_resource_path (строка), метод:: delete, data: {подтвердить: I18n.t('active_admin.delete_confirmation')}, class: "delete_link", если row.deletable? конец конец
конец
Теперь сложная часть и я несколько раз постучали по голове, чтобы контролировать ее на странице:
config.remove_action_item (: destroy) # удалит кнопку уничтожения
action_item only:: 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?
конец
Извините за мое ужасное форматирование.