у меня есть это:Инициализация модуля вперемешку к модели
class Bullet < ActiveRecord::Base
include StagedVersionMethods
...
end
И это
module StagedVersionMethods
def initialize
puts self.bullet_id
end
end
Когда я создаю экземпляр Пули, модули инициализации метод пожаров, но я получаю ActiveRecord error: ... activerecord-2.2.2/lib/active_record/attribute_methods.rb: 268: in `read_attribute '
Мое намерение - инициализировать переменную экземпляра, для которой мне нужна prima ry ключевое значение записи, в которую я вхожу. Другие методы в модуле будут работать с этой переменной экземпляра.
Обратный вызов модуля включен() также не подходит для задачи, поскольку в этом контексте self является модулем, а не записью AR.
Как к этому нужно подойти?
Благодаря
Благодарности Shadwell, переменной экземпляры будет копией экземпляра «я», но с правками, внесенных в него. Он представляет собой временную копию «родительской» пули, и модуль будет смешивать методы с методами MOdel, такими как has_temp_version ?, apply_temp_version, discard_temp_version и т. Д. Я пробовал подход, который вы предложили (что имеет смысл), однако атрибуты self, включая bullet_id, все ноль. Я использую ваше второе предложение в настоящее время, и это работает отлично - просто немного больше сантехники, чем мне хотелось бы. Cheers – Paul