我有Identity
模型,其中包含许多types
(例如student
,teacher
)。这些类型中的每一种都具有在不同模块中定义的许多唯一方法,以及许多共享方法。
我想根据即时类型添加某些模块,以避免命名冲突。类似的东西:
class Identity < ActiveRecord::Base
if instant.type =='student'
include Student
if instant.type == 'teacher'
include Teacher
end
end
我该怎么做?
答案 0 :(得分:1)
您可以在初始化挂钩后使用以加载正确的模块。
def after_initialize
if self.type =='student'
extend Student
else if self.type == 'teacher'
extend Teacher
end
end
但您必须确保始终使用类型初始化对象以避免意外结果。