nested_attributes和saved_changes无法正常工作

时间:2018-10-15 15:47:21

标签: ruby-on-rails-5

当从由嵌套属性更新的子级触发更改时,Saved_changes ActiveRecord方法返回空白值时遇到问题。

给出以下两个模型:

[[1]]
[1] 1 2 3 4

[[2]]
[1] 1

[[3]]
[1] 2

[[4]]
[1] 3

[[5]]
[1] 4
lis <- list()
lis[2:5] <- as.list(vec)
lis[[1]] <- vec

这些行为上的差异发生了:

class Customer < ApplicationRecord
  enum status: {inactive: 0, active: 1, paused: 2}, _prefix: :status

  has_many :customer_pauses
  has_many :contracts

  after_save :handle_status_change

  protected

  # UNEXPECTED BEHAVIOR HAPPENS HERE!!!
  def handle_status_change
    puts "CHANGED STATUS??? #{saved_change_to_status?}"
    puts saved_changes
    puts "--------------------"
    if saved_change_to_status?
      contracts.where(status: saved_change_to_status.first).update status: status
    end
  end

end

我不确定为什么会发生这种情况,这是预期的行为还是Rails中的错误?

对嵌套子项的回调是否不会导致对其父项的更改?

0 个答案:

没有答案