Rails メソッドチェインについて
メソッドチェインとは
メソッドチェインとは、あるオブジェクトに対してメソッドを「.(ドット)」で繋げていき「.」の前のメソッドで返ってきた値を「.」の次に繋げたメソッドが受け取って処理していく。
#例1 User.where(name: 'programan').find_by(age: 25)
→ User.where(name: 'programan')で返ってきた配列に対して、find_byを使用することが出来る。
#例2 User.find_by(name: 'David').update(name: 'Dave')
→User.find_by(name: 'David')の返り値であるユーザーオブジェクトに対してupdate処理を実行している。 User.find_by(name: 'David')でユーザーが取得できなかった場合、nilに対してupdate処理を行うこととなり、例外が発生するので注意。 例外が発生しないようにするには、以下のように&.(通称ぼっち演算子)を使用すると良いでしょう。 nilでないときに限り(nilの時はnilを返す)、update処理を行うようになります。
User.find_by(name: 'David')&.update(name: 'Dave')