RAILS - ActiveAdmin 禁用评论删除?

RAILS - ActiveAdmin disable comments delete?

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

的可能性

但是我到处都找不到这个

是否可以删除 comments 删除?

解决方案 1

您可以按照此处所述提供自己的 AuthorizationAdapter 来做到这一点: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

第一个方案更好。