ruby-on-rails - ruby on rails 模型中的“as”是什么?
问题描述
ruby on rails 模型中的“as”是什么?它是如何工作的?
例如
has_many :something, as: :reasonable
它是多态的吗?
解决方案
是的,这是一个多态关联,它允许一个模型属于多个模型。应该有
class Something < ApplicationRecord
belongs_to :reasonable, polymorphic: true
end
然后任何模型都可以在不向Something添加另一列的情况下将其中的许多都视为合理。
class Thing < ApplicationRecord
has_many :somethings, as: :reasonable
end
class Stuff < ApplicationRecord
has_many :somethings, as: :reasonable
end
某些东西同时存储了与其关联的类和 ID,从而允许它是多态的。
推荐阅读
- html5-canvas - 在复杂的 HTML 画布形状周围(和内部)描边?
- database - 时空数据库/数据处理框架
- c# - DataTrigger 未在 DataGrid 中触发
- wordpress - 使用 Chart.js 从表单字段中绘制图形
- javascript - 如何为这些问题拍照
- bluetooth - 无法连接树莓派 Pi3B 蓝牙到 HC-06 模块?
- firebase - 访问 RemoteConfig 创建循环 Flutter Web
- java - 为什么余数函数没有给我Java中的确切余数
- visual-studio - MSVC和stdlib(ms实现)之间的兼容性是什么
- python - Wagtail:更改 wagtailmenus 的 list_display