【发布时间】:2014-02-16 23:26:34
【问题描述】:
问题的简短版本
我看到 ActiveRecord 有一个自动保存方法,用于在调用父模型的“保存”时保存关联的模型。有没有办法自动保存整个模型?换句话说,我可以给模型某种声明,而不必为“提交到数据库步骤”而烦恼吗?
现在我不得不说:
@household.address = "new address"
@household.save
但我更想说:
@household.address = "new address"
然后完成。
加长版问题
如果上面的问题对你没有意义,让我给你一些背景信息!
在我的 Schema 中,我有很多很多的 has_many through。我喜欢每当我更新我的模型的一部分时,其余部分都会自动保存。其实我什至不必使用 save 方法!
例如:我让老师和学生一起参加课程。一门课程属于许多老师(是的,我的班级每个班级有很多老师)和许多学生。学生通过课程等有老师。我发现如果我说
@course -= [@student]
或
@course += [@teacher]
然后我永远不需要使用@course.save 或更新或任何东西。它自救。这是预期的行为!
现在回答我的问题。我的大多数关联都以这种方式工作(不需要保存),所以我发现在我的一个架构中我需要使用保存命令,但对于其他所有事情都跳过该步骤,这很烦人。 (我想要一个更一致的框架,要么总是使用 save 要么从不使用它。)
你看,我的学生被分组到家庭中(两个学生可以来自同一个家庭)。所以学生属于家庭,家庭有_许多学生等等。
如果我需要更改我的家庭地址,我必须使用
@household.address = "new address"
@household.save
所以我想要整个家庭模型的自动保存选项!我看到了关联的自动保存选项,但在调用 save 时我不需要任何级联保存,我只是不想被打扰调用 save!
【问题讨论】:
标签: ruby activerecord