🖥

#Rails ActiveRecord / detect updated DB records on instance / saved_ch

に公開
# Model Instance
user = User.first

user.saved_changes?
# => false

user.update!(name: "Alice")
# User Update (0.8ms)  UPDATE `users` SET `name` = 'Alice', `updated_at` = '2020-01-26 05:35:18' WHERE `users`.`id` = 1

user.saved_changes?
# => true

user.reload
user.saved_changes?
# => false

# When nothing commit on DB
user.update!(name: "Alice")
# (0.6ms)  BEGIN
# (0.5ms)  COMMIT

user.saved_changes?
# => false
# Then saved_changess?

user.update!(name: "Bob")
user.saved_changes?
# => true


user.reload
user.saved_changes?
# => false

user.name = "Carol"
user.saved_changes?
# => false

user.user.has_changes_to_save?
# => true

user.save!
user.saved_changes?
# => true

Original by Github issue

https://github.com/YumaInaura/YumaInaura/issues/2967

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

Twitter

https://twitter.com/YumaInaura

公開日時

2020-01-27

Discussion