2017-01-11 13 views
1

ActiveAdminパネルを一体化した後、私は私がdelete commentsRAILS - ActiveAdminはコメントの削除を無効にしますか?

への可能性を排除するために、任意のオプションをmodifiyできる場所を見つけることを試みた。しかし、私は、これはどこでも

ことが可能であるがcomments除去を削除見つけることができませんか?

答えて

1

ソリューション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 

にこれを入れてください。

+0

解決策1は完璧です!ありがとうございました – F4Ke

関連する問題