ActiveRecordクラスに公開を追加するプラグインを使用しています。私は次のように出版社と一緒にクラスを拡張します:
class Note < ActiveRecord::Base
# ...
publishable :related_attributes => [:taggings]
end
私の出版社は次のように構成されています。
module Publisher
def self.included(base)
base.send(:extend, ClassMethods)
@@publishing_options = [] # does not seem to be available
end
module ClassMethods
def publishable options={}
include InstanceMethods
@@publishing_options = options
# does not work as class_variable_set is a private method
# self.class_variable_set(:@@publishing_options, options)
# results in: uninitialized class variable @@publishing_options in Publisher::ClassMethods
puts "@@publishing_options: #{@@publishing_options.inspect}"
# ...
end
# ...
end
module InstanceMethods
# results in: uninitialized class variable @@publishing_options in Publisher::InstanceMethods
def related_attributes
@@publishing_options[:related_attributes]
end
# ...
end
end
オプションを公開可能に渡し、それらをクラス変数として利用できるようにする方法についてのアイデアはありますか?