- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 STI、多态关联或类型表之间左右为难。我已经有一个包含以下字段的单位表:
name
account_id
speed_limit
is_speeding
activation_state
unit_status_id
实际上存在三种不同类型的装置:GPS 装置、石油装置和冰箱装置。当用户登录时,他们的网页会根据其所在的单位有条件地更改。这三个单元都有一个 account、activation_state 和 unit_status_id 等字段。但只有 GPS 单元才有 speeding_limit 或 is_speeding 字段。
我应该使用多态关联吗:
class Unit
belongs_to :unitable, :polymorphic => true
end
class RefrigeratorUnit < ActiveRecord::Base
has_one :units, as: => :unitable
end
class OilUnit < ActiveRecord::Base
has_one :units, as: => :unitable
end
class GpsUnit < ActiveRecord::Base
has_one :units, as: => :unitable
end
或者我应该使用单表继承吗?
class Unit < ActiveRecord::Base
end
class GpsUnit < Unit
end
class RefrigeratorUnit < Unit
end
class OilUnit < Unit
end
最初我倾向于 STI,但冰箱和石油单位没有速度限制,这意味着它们将始终为空值。所以我开始实现多态关联,但后来意识到 GPS 单位、石油单位或冰箱单位永远不会有很多单位。换句话说,它始终是一个 has_one 关系,例如,当用户创建一个 GPS 单元时,也会创建一个单元。这似乎有点多余。所以我很伤心。
最佳答案
我想说的是,你把它搞反了——单位有三种截然不同的类型,所以可能应该有三种不同的单位类别——GpsUnit、OilUnit、FridgeUnit。
然后这取决于 - 如果配置文件只有一个单元,则配置文件:
belongs_to :unit, :polymorphic => true
如果一个配置文件可以有很多单元,或者单元有很多共同行为,那么 STI 可能就是答案。
关于ruby-on-rails - Rails - 多态关联或单表继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20484183/
我来自 Asp.Net 世界,试图理解 Angular State 的含义。 什么是 Angular 状态?它类似于Asp.Net中的ascx组件吗?是子页面吗?它类似于工作流程状态吗? 我听到很多人
我一直在寻找 3 态拨动开关,但运气不佳。 基本上我需要一个具有以下状态的开关: |开 |不适用 |关 | slider 默认从中间开始,一旦用户向左或向右滑动,就无法回到N/A(未回答)状态。 有人
我是一名优秀的程序员,十分优秀!