Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在不更改数据库的情况下添加/删除ActiveRecord关联_Ruby On Rails_Activerecord - Fatal编程技术网

Ruby on rails 在不更改数据库的情况下添加/删除ActiveRecord关联

Ruby on rails 在不更改数据库的情况下添加/删除ActiveRecord关联,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我有一个模型分数和一个模型调整。分数有许多调整 我也有一个带有调整的分数列表,我希望能够在不影响db的情况下进行更新。我希望能够做到以下几点: scores.each do |score| score.adjustments << some_new_adjustment score.adjustments.delete_all(some_old_adjustments) end 得分。每个人都得分| score.adjustments指南中没有这样做的方法 但是,您应该能够

我有一个模型
分数
和一个模型
调整
分数
有许多
调整

我也有一个带有调整的分数列表,我希望能够在不影响db的情况下进行更新。我希望能够做到以下几点:

scores.each do |score|
  score.adjustments << some_new_adjustment
  score.adjustments.delete_all(some_old_adjustments)
end
得分。每个人都得分|

score.adjustments指南中没有这样做的方法

但是,您应该能够将关联的元素作为数组获取,删除不需要的元素,然后分配新数组。在保存父项之前,它不应更改数据库

current = score.ajustments.to_a
new_adjustments = current + new_adjustment - old_adjustment
score.adjustments = new_adjustments

score.ajustments.to_a.拒绝{| sa | sa==old_adjustment}.push(new_adjustment)