1. 我知道,当autosave: true/https://api.rubyonrails.或g/classes/ActiveRec或d/AutosaveAssociation.html时,它将保存关联

  2. 我知道它将拯救像这样构建的关联

    书.新的(名字:"foo")

或者

book = Book.new(name: 'foo')
book.build_auth或(name: 'bar') #has_one
book.save
  1. 我认为在分配或添加关联时也会保存它们

    书.新的(名字:"foo")

book = Book.new(name: 'foo')
book.auth或s << Auth或.new(name: 'bar')
book.save

但是,我有一个复杂的错误,它涉及到一些不自动保存的东西.所以,我想通过判断book来进行调试,以验证我认为将要保存的内容实际上会被保存.

TL;博士

推荐答案

不幸的是,世上没有像"要保存的关联"这样的东西.然而,有一些规则规定了什么时候被保存.你可以在这里找到:http://guides.rubyonrails.org/association_basics.html.要点:4.1.5(属于),4.2.5(有一个),4.3.4(有许多)和4.4.4(habtm).

更新:

如果存在多个关联,则在保存父项if child时保存子项.新纪录?返回true(子项尚未保存到db),或者需要更新外键列.这就是为什么:

  1. 在已保存的父对象上向关联添加对象不保存新的子对象.
  2. 在未保存的父对象上向关联添加对象不会保存(无外键值)
  3. 如果正在保存未保存的父对象,并且关联缓存中有一些子对象,则会保存这些对象以更新外键.

Ruby-on-rails相关问答推荐

Rails turbo流只更新页面上的一个元素

用至少一个缺省值初始化Ruby数组的最简洁方法是什么?

有没有一种方法可以点击一个按钮来冒泡到父元素?

Rails 7中的Turbo流

Rails 5.1.7:Sprockets::Rails::Helper::AssetNotFound

多对多模型通过控制台创建记录不起作用

如何将 ActionController::RoutingError 分类为 Sentry 中的错误

Rails 7,Hotwire 动态表单,更新值不起作用

如何验证 Rails 中的多态字段关联?

如何保持 en.yml DRY?

Rails 7 应用程序 - 引用模型文件时出现未初始化常量错误

在 Ruby on Rails html.erb 文件中循环

twitter bootstrap下拉突然不起作用

如何将自定义路由添加到资源路由

按周/月/等和 ActiveRecord 分组?

Rails Devise:设置密码重置令牌并重定向用户

非持久 ActiveRecord 模型属性

如果多态关联的类型列不指向 STI 的基本模型,为什么多态关联对 STI 不起作用?

为什么不对 Rspec + Selenium 使用共享的 ActiveRecord 连接?

未捕获的 ReferenceError:未定义 ReactDOM