Как удалить опцию «удалить» для администраторов, использующих activeadmin? - PullRequest
0 голосов
/ 31 марта 2019

Я пытаюсь понять, почему я не могу удалить опцию «удалить» для администраторов, использующих активных администраторов.

Раньше я пытался удалить кнопку администратора, но после запуска сервера изменения не вносились.

Я добавил следующую строку, это избавляет от 1 кнопки удаления.Однако есть 2, которые необходимо удалить.

Пример используемой кнопки удаления: https://www.rubydoc.info/gems/active_admin_sidebar/0.0.4

  config.remove_action_item(:destroy)

После исследования и поиска этого кода это также не сработало.

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?
ActiveAdmin.register AdminUser do
  config.remove_action_item(:destroy)

  permit_params :email, :password, :password_confirmation


  index do
    selectable_column
    id_column
    column :email
    column :current_sign_in_at
    column :sign_in_count
    column :created_at
    actions
  end

  filter :email
  filter :current_sign_in_at
  filter :sign_in_count
  filter :created_at

  form do |f|
    f.inputs do
      f.input :email
      f.input :password
      f.input :password_confirmation
    end
    f.actions
  end

end
`````````````````````````````````````````````````````````````````````````````

1 Ответ

0 голосов
/ 31 марта 2019

Если вы хотите пропустить действие «уничтожить» в кнопках, у вас есть два способа:

  1. Передать список разрешенных действий:
index do
  selectable_column
  id_column
  # ... other columns
  actions :index, :show, :new, :create, :update, :edit
end
  1. Используйте except ключ для actions метода для передачи запрещенных действий:
index do
  selectable_column
  id_column
  # ... other columns
  actions :all, except: :destroy
end

Или вы можете отключить действие :destroy для каждой страницы ресурса:

ActiveAdmin.register AdminUser do
  actions :all, :except => :destroy
end

Или вы можете очистить все действия для ресурса:

ActiveAdmin.register AdminUser do
  config.clear_action_items!

  # After this you can go ahead and define custom 
  # action items as you please
end

Источники:

  1. https://activeadmin.info/2-resource-customization.html

  2. https://github.com/activeadmin/activeadmin/issues/341

  3. https://github.com/activeadmin/activeadmin/issues/760

...