TakayukiKoyama Geek Blog

Create, Entertain, Experience

RailsGuideにPR出してみた。 `after_touch`

目的

 ActiveRecordコールバックで出力結果が正しくなかったので直した。

経緯

 RailsGuideでRailsの勉強してたら、ActiveRecordコールバックで出力結果が異なっていたので調べてみた。  原文を調べてみたら、原文も出力結果が同じで、「もしかして本家にコミットできるチャンス?」と思ったらEdge(最新)では修正されていた😅  とはいえ、間違いは早めに直しておいたほうが良いと思うのでissueを投げてみた。

 すると、RailsGuideを運営しているYassLabの安川さんからリプをいただいた。最初はどう修正したら良いのかよく分からなかったが、なるほど確かに過去のPRを見れば大凡どこを修正すれば良いか分かることに気づいた。

ということでPR

 https://github.com/yasslab/railsguides.jp/pull/702

 無事にマージされました。

ちなみに今回の問題点

 issueにも書いたが、関連付けされたモデルに対して touch: true をつけて、 after_touch するときにどちらが優先されるかを実行して確認してみると、自身のモデルが先にタッチされて、後から関連付け元のモデルの after_touch が呼び出された。修正前は順番が逆になっていた。

# 正しい出力
>> @employee.touch
Employeeにタッチされました
Employee/Companyにタッチされました

なにはともあれ

 今日からOSSコミッターです(?)。コードというより文章を直しただけだけど。