我有一個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