1

我正在使用带有 ActiveAdmin 0.4.4 的 Rails 3.2.8 。

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

那个删除按钮有点太突出,太容易点击,我不喜欢。我承认单击按钮时会出现一个确认对话框,但我仍然想重新定位按钮并将其放在其他位置。我可能也会把它做成一个小链接,而不是把它设计成一个按钮。

我该怎么做呢?

4

1 回答 1

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

现在,您可以随意设置样式,或者您可以将整个破坏链接注释掉。索引屏幕仍然有资源的删除链接。不要忘记重新启动服务器。

祝你阅读源码好运!

于 2012-10-11T15:13:19.033 回答