Sha256: 4410eae23ebcd5d67c4358f3b75eb0e358c9f924b73aad629c79b3e83f24c84c

Contents?: true

Size: 1.15 KB

Versions: 5

Compression:

Stored size: 1.15 KB

Contents

module ActiveAdmin
  class Comment < ActiveRecord::Base

    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

    # @returns [String] The name of the record to use for the polymorphic relationship
    def self.resource_type(record)
      record.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
    end

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

    def self.table_name
      @table_name ||= ActiveRecord::Migrator.proper_table_name("active_admin_comments")
    end

  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
yousty-activeadmin-1.0.4.pre lib/active_admin/orm/active_record/comments/comment.rb
yousty-activeadmin-1.0.3.pre lib/active_admin/orm/active_record/comments/comment.rb
yousty-activeadmin-1.0.2.pre lib/active_admin/orm/active_record/comments/comment.rb
yousty-activeadmin-1.0.1.pre lib/active_admin/orm/active_record/comments/comment.rb
yousty-activeadmin-1.0.0.pre lib/active_admin/orm/active_record/comments/comment.rb