Rubyのメソッド名の末尾に = (イコール)

投稿者: Anonymous

【Rails】fields_for と accepts_nested_attributes_for – kzy52’s blog

にある通り

profile_attributes= と academics_attributes= メソッドが追加される

といったような末尾が=のメソッド名はどのような利点があって、どのようなときに使うのでしょうか?

解決

通常のメソッドとの違いは、代入構文のように使用できる点です。

hoge= メソッドを定義すると、obj.hoge = value のように = の前に空白があっても hoge= メソッドが呼び出せます。

また、メソッド内で戻り値を指定しても無視され、引数の値がそのまま返されます。
これは、foo = obj.hoge = value のように使用した時に、ちゃんと foo に value が代入されるようにするためだと思います。

回答者: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *