gpt4 book ai didi

ruby-on-rails - Rails foo= 与 foo_id=

转载 作者:行者123 更新时间:2023-12-04 05:42:40 24 4
gpt4 key购买 nike

如果bar belongs_to foo和foo has_many bars,效果有区别吗

my_bar.foo = my_foo

my_bar.foo_id = my_foo.id

或者两者都在 my_foo 和 my_bar 之间建立关联?

我问是因为当我覆盖 Bar#foo_id=(input) 的 setter 时,我正在尝试决定是否手动添加关联。

最佳答案

你的问题有一点不准确,因为这些都没有创建一个关联:他们建立了关联(如果你愿意,可以“构建”它),但是它不会被创建,即保存到数据库中,直到 my_bar保存

这两者都应该为彼此设置代理:如果你说 my_bar.foo_id = 4,那么 my_bar.foo 应该返回 id 为 4 的 foo,即使保存之前,反之亦然。

如果您要覆盖 Bar#foo_id 的 setter(按照惯例,在描述方法时,散列表示实例方法而不是类方法),如果您不会复制 Rails 的自然行为。小心行事。

关于ruby-on-rails - Rails foo= 与 foo_id=,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32073846/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com