Sha256: 2d849b8e609151063a9e4e3e37a6d51e1d97ebb37cfb755f5d28e48fb2aab1f0

Contents?: true

Size: 1.32 KB

Versions: 12

Compression:

Stored size: 1.32 KB

Contents

module ActiveAdmin
  class Comment < ActiveRecord::Base

    self.table_name = 'active_admin_comments'

    belongs_to :resource, polymorphic: true
    belongs_to :author,   polymorphic: true

    unless Rails::VERSION::MAJOR > 3 && !defined? ProtectedAttributes
      attr_accessible :resource, :resource_id, :resource_type, :body, :namespace
    end

    validates_presence_of :body, :namespace, :resource

    before_create :set_resource_type

    # @return [String] The name of the record to use for the polymorphic relationship
    def self.resource_type(resource)
      ResourceController::Decorators.undecorate(resource).class.base_class.name.to_s
    end

    # Postgres adapters won't compare strings to numbers (issue 34)
    def self.resource_id_cast(record)
      resource_id_type == :string ? record.id.to_s : record.id
    end

    def self.find_for_resource_in_namespace(resource, namespace)
      where(
        resource_type: resource_type(resource),
        resource_id:   resource_id_cast(resource),
        namespace:     namespace.to_s
      ).order(ActiveAdmin.application.namespaces[namespace.to_sym].comments_order)
    end

    def self.resource_id_type
      columns.detect{ |i| i.name == "resource_id" }.type
    end

    def set_resource_type
      self.resource_type = self.class.resource_type(resource)
    end

  end
end

Version data entries

12 entries across 12 versions & 3 rubygems

Version Path
activeadmin_addons-1.1.2 vendor/bundle/ruby/2.3.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/orm/active_record/comments/comment.rb
activeadmin_addons-1.1.1 vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/orm/active_record/comments/comment.rb
activeadmin_addons-1.1.0 vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/orm/active_record/comments/comment.rb
activeadmin_addons-1.0.1 vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/orm/active_record/comments/comment.rb
activeadmin_addons-1.0.0 vendor/bundle/ruby/2.2.0/bundler/gems/activeadmin-a5a53c3f2b8f/lib/active_admin/orm/active_record/comments/comment.rb
activeadmin-1.0.0.pre5 lib/active_admin/orm/active_record/comments/comment.rb
activeadmin-orac-1.0.0.pre4 lib/active_admin/orm/active_record/comments/comment.rb
activeadmin-orac-1.0.0 lib/active_admin/orm/active_record/comments/comment.rb
activeadmin-orac-1.0.0.pre.orac lib/active_admin/orm/active_record/comments/comment.rb
activeadmin-1.0.0.pre4 lib/active_admin/orm/active_record/comments/comment.rb
activeadmin-1.0.0.pre3 lib/active_admin/orm/active_record/comments/comment.rb
activeadmin-1.0.0.pre2 lib/active_admin/orm/active_record/comments/comment.rb