2014-09-08 2 views
12

есть способ указать на странице индекса 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 

ответ

20

Добавить любые действия, которые вы хотите быть доступны с помощью используя 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 
+0

Является ли действие ': create' или': new'? Если я использую 'действия: все, кроме: [: create]' я все еще получаю кнопку «Создать» на странице редактирования. Использование 'actions: all, кроме: [: new]' заставляет кнопку уходить. – spinlock

1

ли этот путь,

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

или

ActiveAdmin.register Foobar do 
    actions :only => :edit 
end 

Необходимо указать на уровне ресурсов не в определении метода

+1

На основе [исходного кода] (https://github.com/activeadmin/activeadmin/blob/master/ lib/active_admin/views/index_as_table.rb # L80) его также следует настроить в определении метода, но только с добавлением новых действий и полностью отключением действий по умолчанию. –

+0

@GaborGarami, вы можете настроить его внутри индивидуального метода. Проверьте это http://activeadmin.info/docs/8-custom-actions.html#custom_action_items –

+0

Андрей также показал, как его можно настроить, но я думаю, что muichkine имеет дело только с действиями по умолчанию. –

1

Согласно исходному коду, 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 

где он может заменить название ссылки и путь к действию

0

Пример игры с столбцом действий. В этом примере я просто повторно реализована по умолчанию один, но вы можете сделать мощный кодирование здесь:

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 
Смежные вопросы