Mixin для определения ассоциаций моделей в Rails 3.1 - PullRequest
0 голосов
/ 04 января 2012

У меня есть ряд различных моделей, каждая из которых имеет полиморфную ассоциацию с моделью свойств.Я пытаюсь написать миксин, чтобы немного высушить код, но они не работают, пожалуйста, не могли бы вы предложить некоторую помощь по отладке.Мой миксин выглядит следующим образом ...

module ModelWithProperties
    def self.included?(base)
        base.class_eval do
            has_many :properties, :as=>:parent
        end
    end

    def examplesharedfunction
        /// stuff here
    end
end

А потом мои модели выглядят так ...

class Myobjects < ActiveRecord::Base
    include ModelWithProperties
end

Когда я запускаю все это, ассоциация, похоже, имеетпринято («неопределенные свойства метода» для # может получить доступ к функции exampleshared.

Какие-либо подсказки / подсказки?

1 Ответ

4 голосов
/ 04 января 2012

Хук, который вызывается, когда модуль включен, self.included не self.included?

Вы также можете использовать ActiveSupport::Concern

module M
  extend ActiveSupport::Concern

  included do
    has_many :properties, :as=>:parent
  end
end
...