如何修改现有记录的子/外键id而不保存它们

时间:2015-02-13 08:15:43

标签: ruby-on-rails ruby

我有两个型号

model A
  has_many :b

model B

对于新记录,我可以这样做:

new_record = A.new
new_record.b_ids = [5] # ids will not attempt to save
new_record.save

但对于现有记录:

existing_record = A.find(...)
existing_record.b_ids = [5] # after this assignment, database already updates (using SQL if that matters)

如何在不更新数据库的情况下修改existing_record子ID。我只想在运行“existing_record.save”时保存它。我注意到:自动保存,但看起来这与我现在要求的有点不同。

1 个答案:

答案 0 :(得分:1)

model A
  has_many :b
model B

has_many关联为您提供collection_singular_ids=(ids)方法,这是setter方法之一。

现在第二个是为了完成这项工作,您需要在belongs_to :a

中声明model B

For has_many reference