has_one belongs_to 关联 autosave => true 不保存

Posted

技术标签:

【中文标题】has_one belongs_to 关联 autosave => true 不保存【英文标题】:has_one belongs_to association autosave => true not saving 【发布时间】:2011-03-23 09:51:00 【问题描述】:

我有两个模型

Board
has_one    :pref, :autosave => true,  :dependent => :destroy

Pref

belongs_to :board

pref 对象具有在数据库中设置的默认值,因此在创建板时不需要使用任何信息来创建对象。板的 ID 在 pref 表中。

由于 :autosave=> true 我认为当我创建并保存一个新的 Board 对象时,会自动创建并保存一个 pref 对象。

这不是这样工作的,所以我一定是误解了。

有没有办法在保存板时自动保存首选项对象?

提前谢谢你

【问题讨论】:

【参考方案1】:

autosave => true 不应为您创建元素。 docs say:

如果为真,则始终保存关联的 如果标记为对象或销毁它 销毁,保存父母时 目的。如果为 false,则永远不要保存或 销毁关联的对象。

在创建新的board 时,您可以使用callback 创建pref 对象。

类似的东西:

after_create :create_pref

def create_pref
  pref.create!
end

【讨论】:

以上是关于has_one belongs_to 关联 autosave => true 不保存的主要内容,如果未能解决你的问题,请参考以下文章

ruby 小要点说明使用has_one而不是belongs_to来利用父传递

thinkphp一对多HAS_MANY

thinkphp关联模型 condition关联条件怎么用,能说个例子吗

为此使用啥 Rails-ActiveRecord 关联?

ruby on rails(model)

ActiveRecord `has_one` 关联扩展方法