ruby-on-rails - 如何在 Rails 中创建要继承的通用模型
问题描述
我想将我在 Rails 应用程序中的所有模型转换为使用 uuid 作为 id,如果需要,可以添加一些对我的所有模型通用的字段。为此,我正在考虑,而不是这样做:
class MyModel < ActiveRecord::Base
end
这样做
class CommonUUIDModel < ActiveRecord::Base
some_uuid_related_information
end
class MyModel < CommonUUIDModel
end
我的问题是:我怎样才能实现这一点(应该用什么代替some_uuid_related_information,这对 Rails 应用程序来说是一个好习惯吗?
解决方案
更喜欢扩展(在模块中混合)而不是继承(子类)。
换句话说,制作一个以统一方式改变模型的模块,并将该模块包含在所有使用它的类中。
对于 ActiveRecord 支持的模型尤其如此,因为子类化通常会发出 STI(单表继承)的信号
推荐阅读
- python - 按键值对对列表字典进行排序
- python - 扭曲的日志记录到屏幕(标准输出)不起作用
- python - 如何将来自不同数据框的一组列中的数据绘制到子图中?
- javascript - 超过 n 倍限制后从 0 开始计数
- angular - TinyMCE Angular 组件在保存时不断刷新页面
- swift - Yandex 应用程序 metrica 配置上的模拟器崩溃
- laravel - 将结果分块到现有对象上
- javascript - 开玩笑 - 如何模拟嵌套函数?
- android - 将原生 Twilio Android SDK 与 Flutter 集成
- c# - 如何使用 Roslyn 获取字段符号的包含类?