更改ActiveAdmin(Rails 3.2.8)</resource>中“删除<资源>”按钮的位置

时间:2012-10-10 11:41:46

标签: ruby-on-rails activeadmin

我正在使用Rails 3.2.8和ActiveAdmin 0.4.4。

如果在ActiveAdmin资源控制器中启用了:destroy操作,默认情况下,Delete <resource>按钮会显示在资源show页面的右上角。

删除按钮有点过于突出,太容易按我的喜好点击了。我承认单击按钮时有一个确认对话框,但我仍然想重新找到按钮并将其放在其他位置。我可能也会把它作为一个小链接,而不是将其设置为按钮。

我将如何做到这一点?

1 个答案:

答案 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

现在,您可以随心所欲,或者只是评论整个销毁链接。索引屏幕仍然具有资源的删除链接。别忘了重启服务器。

祝你好运阅读源!