我有以下型号:
module Core
class Conditioner
include Mongoid::Document
field :operator, type: String, default: '' # can be !=, ==, <, >, <=, >=, =
end
end
module Core
class Count < Conditioner
field :threshold, type: Integer, default: 0 # a simple threshold
end
end
module Core
class Time < Conditioner
UNITS = %w(seconds minutes hours days weeks months years)
# will be use like this: Time.value.send(Time.unit) Ex: 3.minutes
field :value, type: Integer, default: 0 # 3
field :unit, type: String, default: '' # minutes
validates :unit, presence: true, inclusion: { in: UNITS }
end
end
想知道我是否应该使用命名空间Count
和Time
类Conditioner
?像这样:
module Core
class Conditioner::Time < Conditioner
end
end
Time.now
既然我现在必须这样打电话::Time.now
。
编辑
关于答案,也许这应该是一个更好的主意:
module Core
module Conditioner
class Base
end
end
end
module Core
module Conditioner
class Count < Conditioner::Base
end
end
end
module Core
module Conditioner
class Time < Conditioner::Base
end
end
end
由于定义一个名为的类Core::Time
可能过于通用并且没有多大意义。
你怎么看?不确定这里的最佳实践。