LoginSignup
1
2

More than 5 years have passed since last update.

DBの更新をインスタンスにreloadする

Posted at

別に大した話ではないのだけど、よく忘れたり、あれ?ってなるときがあるので備忘録。

DBの更新をActiveRecordインスタンスにロードし忘れる

良くRspecで値が更新されたかどうか系をテストしたりするときに忘れることが多い気がする。

例えば、

describe do
  before do
    @user = User.find(1)
  end

  it do
    User.first.update(name: 'hoge')
    expect(@user.name).to eq 'hoge'
  end
end

これはテストが通らないはず。

updateしてる下に@user.reloadするか、@user.updateとARのインスタンスから更新処理を実行するようにすれば良い。(いろいろツッコミどころ満載だけど気にしない)

とりあえず、ActiveRecordインスタンス経由で更新が行われなかった場合、そのインスタンスに更新の影響は反映されない。反映させたいのならreloadしろということをちょっと覚えておきたかった

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2