Подтвердить что ты не робот

Как удалить опцию удаления activeAdmin?

in rails gem active admin Я хочу удалить параметр delete из default_actions, пока мне все еще нужно действие edit и show, есть ли способ сделать это?

4b9b3361

Ответ 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?

конец

Извините за мое ужасное форматирование.