我正在使用Rails 3.2.8和ActiveAdmin 0.4.4。
如果在ActiveAdmin资源控制器中启用了:destroy
操作,默认情况下,Delete <resource>
按钮会显示在资源show
页面的右上角。
删除按钮有点过于突出,太容易按我的喜好点击了。我承认单击按钮时有一个确认对话框,但我仍然想重新找到按钮并将其放在其他位置。我可能也会把它作为一个小链接,而不是将其设置为按钮。
我将如何做到这一点?
答案 0 :(得分:1)
删除操作项添加在add /default_action_items的path / to / activeadmin_gem / lib / active_admin / resource / action_items.rb
中module ActiveAdmin
class Resource
module ActionItems
...
def add_default_action_items
...
end
end
end
所以你可以做的就是一起擦除删除按钮或者为它添加一个特定的css类。不是通过更改gem源,而是通过将以下内容添加到/config/initializers/activeadmin.rb的底部,从而动态地打开私有模块方法
module ActiveAdmin
class Resource
module ActionItems
private
def add_default_action_items
# New Link on all actions except :new and :show
add_action_item :except => [:new, :show] do
if controller.action_methods.include?('new')
link_to(I18n.t('active_admin.new_model', :model => active_admin_config.resource_name), new_resource_path)
end
end
# Edit link on show
add_action_item :only => :show do
if controller.action_methods.include?('edit')
link_to(I18n.t('active_admin.edit_model', :model => active_admin_config.resource_name), edit_resource_path(resource))
end
end
# Destroy link on show
add_action_item :only => :show do
if controller.action_methods.include?("destroy")
link_to(I18n.t('active_admin.delete_model', :model => active_admin_config.resource_name),
resource_path(resource),
:method => :delete, :confirm => I18n.t('active_admin.delete_confirmation'),
:class => 'Anjan_styles_its_own_destroy_button_class')
end
end
end
end
end
end
现在,您可以随心所欲,或者只是评论整个销毁链接。索引屏幕仍然具有资源的删除链接。别忘了重启服务器。
祝你好运阅读源!