ActiveAdmin操作

mui*_*ine 19 rubygems ruby-on-rails activeadmin ruby-on-rails-4

有没有办法在ActiveAdmin的模型索引页面中指定允许的操作,例如:

index do
  actions :edit
end

index do
  actions only: :edit
end
Run Code Online (Sandbox Code Playgroud)

不工作.什么是正确的语法?

赞赏.

bundle show activeadmin
/home/muichkine/.rvm/gems/ruby-2.1.2/bundler/gems/active_admin-9cfc45330e5a
Run Code Online (Sandbox Code Playgroud)

And*_*eko 27

通过使用添加您想要可用的任何操作actions(通常放在模型定义下):

ActiveAdmin.register YourModel do
actions :index, :show, :create, :edit, :update
Run Code Online (Sandbox Code Playgroud)

如果要为特定操作指定方法,则可以执行此操作

action_item only: :show  do
  link_to 'Edit', action: :edit # so link will only be available on show action
end
Run Code Online (Sandbox Code Playgroud)

  • 操作是“:create”还是“:new”?如果我使用 `actions :all, except: [:create]` 我仍然会在编辑页面上看到一个“新建”按钮。使用 `actions :all, except: [:new]` 会使按钮消失。 (2认同)

Ziv*_*ber 7

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

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
Run Code Online (Sandbox Code Playgroud)


max*_*s ツ 6

这样做,

ActiveAdmin.register Foobar do
  actions :all, :except => [:destroy]
end
Run Code Online (Sandbox Code Playgroud)

或者

ActiveAdmin.register Foobar do
  actions :only => :edit
end
Run Code Online (Sandbox Code Playgroud)

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

  • 基于[源代码](https://github.com/activeadmin/activeadmin/blob/master/lib/active_admin/views/index_as_table.rb#L80),它也应该在方法定义中进行自定义,但只能添加新的操作并完全禁用默认操作。 (2认同)

mui*_*ine 6

根据源代码,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
Run Code Online (Sandbox Code Playgroud)

您可以在其中替换链接标题和操作路径

例如:

    actions defaults: false do |user|
      link_to t('active_admin.view'), admin_user_path(user)
    end
Run Code Online (Sandbox Code Playgroud)

笔记:

请记住,正确添加路径,因为show它应该是admin_user_path(:id),因为index它应该是admin_users_path:)