Смешивание в модуле с attr_accessible, has_one, has_many

Могу ли я сделать что-то вроде Rails?

module Authored
  belongs_to :user
  attr_accessible creation_date
end

class Line < ActiveRecord::Base
  include Authored
end

class Document < ActiveRecord::Base
  include Authored
end

class User < ActiveRecord::Base
  has_many :creations, :class_name => 'Authored'
end

Или мне нужно использовать простое наследование, даже если мои классы Authored имеют разные иерархии классов?

Ответ 1

module Authored
  extend ActiveSupport::Concern

  included do
    belongs_to :user
    attr_accessible :creation_date
  end
end

class Line < ActiveRecord::Base
  include Authored
end

class Document < ActiveRecord::Base
  include Authored
end

Подробнее о ActiveSupport::Concern, http://api.rubyonrails.org/classes/ActiveSupport/Concern.html