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)
示例如何玩操作列。在这个例子中,我只是重新实现了默认的,但你可以在这里进行强大的编码:
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)
这样做,
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
如果有人想更改索引中的操作,他应该选择
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:)