我有一个Rails应用程序,用户可以在其中订阅插件,列表是动态的,包含当前约10个插件。插件在一个应用程序的模型设计
该列表指定哪个开/关。
每个插件都有一组相当独特的属性。
我目前的解决方案是,应用程序有2个“家长”的模型,并为每个插件的一个新模式:
class AddonPrototype
has_many :addons
end
class Addon
belongs_to :addon_prototype
belongs_to :user
end
class AddonAlpha
belongs_to :addon
end
class AddonBeta
belongs_to :addon
end
etc..
模型
AddonPrototype
都有每个插件的一个实例,用默认名称作为唯一的属性。该模型
Addon
与属性enabled
,custom_name
。当用户使用插件访问页面时,会进行检查以查看用户是否每个现有的AddonPrototype
都有一个Addon
实例,或者在运行中创建一个实例。对于每个插件,都有一个独特的模型(例如
AddonAlpha
,AddonBeta
等),其中每个插件都有一组属性。
这样的设计感觉很麻烦,这可能是一个更精简的设置?
“AddonPrototype”,“AddonAlpha”和“AddonBeta”究竟是什么? – fivedigit
'AddonPrototype'是祖父母,每个唯一插件的标准标识符,大约有10个实例。 'AddonAlpha'是'AddonPrototype'实例之一的孙子,并保存特定用户的所有设置。 – Numbers