以下の内容はhttps://haayaaa.hatenablog.com/entry/2019/12/24/213815より取得しました。


updated_atだけ更新

find_or_create_byを使う際、すでにレコードがあるときはupdated_atだけ更新して欲しいと思う状況がありました。 

 

User.find_or_create_by(name: “Hayashi”)

 

これだと既にHayashiさんが存在する場合、updated_atは更新されません。

 

 

なので以下のようにfind_or_initiaize_byしてからアップデートしようかと考えておりました。

user = find_or_initiaize_by(name: “Hayashi”)

user.update(name: “Hayashi”, updated_at: Date Time.now)

 

しかし、touchメソッドを使えばupdated_atのみ更新できると知りました!

 

User.find_or_create_by(name: “Hayashi”).touch

 

 

User.find_or_create_by(name: “Hayashi”)だと返り値は保存したオブジェクトですが、

User.find_or_create_by(name: “Hayashi”).touchとすると返り値がbooleanになるので注意する必要がありました!

 

 

 




以上の内容はhttps://haayaaa.hatenablog.com/entry/2019/12/24/213815より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14