RAILS - ActiveAdmin 禁用注释删除



集成ActiveAdmin面板后,我试图找到我可以在哪里修改任何选项以消除delete comments的可能性

但我在任何地方都找不到这个

有可能删除comments删除?

解决方案 1

您可以提供自己的授权适配器,如下所述:http://activeadmin.info/docs/13-authorization-adapter.html

您的authorized?方法应该是:

  def authorized?(action, subject = nil)
    !(action == ActiveAdmin::Auth::DESTROY && subject.is_a?(ActiveAdmin::Comment))
  end

解决方案 2

或者,您可以覆盖 ActiveAdmin 的生成注释部分的 build_comment 方法。

把它放到lib/active_admin.rb

# Overriding ActiveAdmin's `build_comment` method.
# The original code is here: 
# https://github.com/activeadmin/activeadmin/blob/d01155f73a0e2cc27d712792270357e2b3759d05/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb
#
module ActiveAdmin
  module Comments
    module Views
      class Comments < ActiveAdmin::Views::Panel
        def build_comment(comment)
          div for: comment do
            div class: 'active_admin_comment_meta' do
              h4 class: 'active_admin_comment_author' do
                comment.author ? auto_link(comment.author) : I18n.t('active_admin.comments.author_missing')
              end
              span pretty_format comment.created_at
            end
            div class: 'active_admin_comment_body' do
              simple_format comment.body
            end
          end
        end
      end
    end
  end
end

第一种解决方案更好。

最新更新