Я пытаюсь сделать пользовательский макрос активной записи. Но сейчас кажется невозможным установить переменную экземпляра из своего блока ... вот что я пытаюсь сделать.
module ActiveRecord
class Base
def self.included(base)
base.class.send(:define_method, :my_macro) do |args|
# instance_variable_set for the model instance that has called this
# macro using args
end
end
end
end
Я пробовал class_eval, instance_eval .. но, похоже, ничего не работает, или я не знаю, как их использовать.
Заранее спасибо.
Редактировать : Позвольте мне попытаться объяснить лучше. У меня есть метод класса. Экземпляр класса вызывает этот метод. Теперь этот метод класса должен проинструктировать экземпляр для установки переменной экземпляра для себя.
Редактировать - вот как я хочу использовать макрос
class MyModel < ActiveRecord::Base
my_macro(*args)
def after_initialize
# use the value set in the macro as @instance variable
end
end