現在、私はイベントモデルに持っています
class Event < ActiveRecord::Base
def self.cattr_accessor_with_default(name, value = nil)
cattr_accessor name
self.send("#{name}=", value) if value
end
cattr_accessor_with_default :fixed_start_end_times, false
...
Scheduler モジュールを定義したとき
class Event < ActiveRecord::Base
include Scheduler
cattr_accessor_with_default メソッドをこの Scheduler モジュールに移動できないようです
module Scheduler
def self.included(base)
base.send :include, InstanceMethods
base.extend ClassMethods
end
module ClassMethods
def cattr_accessor_with_default(name, value = nil)
cattr_accessor name
self.send("#{name}=", value) if value
end
cattr_accessor_with_default :fixed_start_end_times, false
...
エラーの発生: Scheduler::ClassMethods:Module の未定義メソッド `cattr_accessor_with_default' (NoMethodError)
私はより良いRails3の方法も使用しようとしました
module Scheduler
def self.included(base)
base.send :include, InstanceMethods
base.extend ClassMethods
end
module ClassMethods
class_attribute :fixed_start_end_times
self.fixed_start_end_times = false
Scheduler::ClassMethods:Module の未定義メソッド「class_attribute」と同じエラー