【发布时间】:2013-03-13 19:05:26
【问题描述】:
我知道在嵌入关联时我们可以做到以下几点
has_many :task_observer, embed: :objects
has_many :task_observer, embed: :ids
有没有办法在关联中嵌入除 id 之外的其他字段,例如 contact_id 或 task_name 作为数组而不是主键?请告诉我。
【问题讨论】:
-
我不太确定你想要什么,但我喜欢为相关对象编写一个序列化程序。在您的情况下,这将是 TaskObserver 模型的序列化程序。然后 has_many 将使用此序列化程序来序列化所有模型。这使您可以完全控制要序列化的字段。但我不确定这是否是你要找的。span>
-
embed: :ids 给了我一个 task_observer id 的数组,像这样 task_observers: [ 22, 20, 18 ] 如果我为 TaskObserver 模型添加一个序列化程序并限制属性,我会得到这样的结果:task_observers :[{contact_id:22},{contact_id:20},{contact_id:18}]
-
那不适合你?我的意思是,在我看来,在这里有哈希是个好主意,这样你就知道你正在使用什么样的 id。因为如果您只有简单的列表,那么它就失去了最初的目的。没有?
标签: ruby-on-rails activerecord active-model-serializers