集成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
第一种解决方案更好。