Действия ActiveAdmin
есть ли способ указать на странице индекса ActiveAdmin модель, какие действия разрешены, например:
index do
actions :edit
end
index do
actions only: :edit
end
не работают. Какой правильный синтаксис?
Оценил.
bundle show activeadmin
/home/muichkine/.rvm/gems/ruby-2.1.2/bundler/gems/active_admin-9cfc45330e5a
Ответы
Ответ 1
Добавьте все действия, которые вы хотите получить, используя actions
(обычно это относится к определению модели):
ActiveAdmin.register YourModel do
actions :index, :show, :create, :edit, :update
Если вы хотите указать метод для определенного действия, вы можете сделать
action_item only: :show do
link_to 'Edit', action: :edit # so link will only be available on show action
end
Ответ 2
Сделайте так,
ActiveAdmin.register Foobar do
actions :all, :except => [:destroy]
end
или
ActiveAdmin.register Foobar do
actions :only => :edit
end
Необходимо указать на уровне ресурса не в определении метода
Ответ 3
Пример игры с столбцом действий. В этом примере я просто повторно выполнил настройку по умолчанию, но здесь вы можете сделать мощную кодировку:
column :actions do |item|
links = []
links << link_to('Show', item_path(item))
links << link_to('Edit', edit_item_path(item))
links << link_to('Delete', item_path(item), method: :delete, confirm: 'Are you sure?')
links.join(' ').html_safe
end
Ответ 4
В соответствии с исходным кодом https://github.com/activeadmin/activeadmin/blob/master/lib/active_admin/views/index_as_table.rb#L80
если вы хотите изменить действия в индексе, он должен идти с
actions defaults: false do |sample|
link_to t('active_admin.edit'), admin_sample_path(sample)
end
где он может заменить название ссылки и путь для действия