Я пытаюсь создать плагин Rails. По большей части то, что я написал, работает. Однако есть проблема с ассоциациями. Когда я пытаюсь вызвать ассоциацию, я получаю эту ошибку:
ActiveRecord::Base doesn't belong in a hierarchy descending from ActiveRecord
В настоящий момент плагин выглядит так:
module ControlledVersioning
module ActsAsVersionable
extend ActiveSupport::Concern
included do
has_many :versions, as: :versionable
after_create :create_initial_version
end
module ClassMethods
def acts_as_versionable(options = {})
cattr_accessor :versionable_attributes
self.versionable_attributes = options[:versionable_attributes]
end
end
private
def create_initial_version
version = versions.create
end
end
end
ActiveRecord::Base.send :include, ControlledVersioning::ActsAsVersionable
И снова сообщение об ошибке запускается всякий раз, когда я пытаюсь вызвать ассоциацию. Я использовал отладчик в обратном вызове after_create
и пробовал работать:
> versions.create
*** ActiveRecord::Base doesn't belong in a hierarchy descending from ActiveRecord
> versions
*** ActiveRecord::Base doesn't belong in a hierarchy descending from ActiveRecord
> Version.new
#<Version id: nil, versionable_id: nil, versionable_type: nil>