ActiveAdmin操作

时间:2014-09-08 15:20:16

标签: ruby-on-rails 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

4 个答案:

答案 0 :(得分:24)

使用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

答案 1 :(得分:2)

这样做,

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

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

需要在资源级别指定,而不是在方法定义中指定

答案 2 :(得分:2)

如何使用操作列的示例。在这个例子中,我只是重新实现了默认的,但你可以在这里进行强大的编码:

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

答案 3 :(得分: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

他可以替换链接标题和操作路径