18141


[【Rails】fields_for と accepts_nested_attributes_for - kzy52's
blog](http://kzy52.com/entry/2013/07/10/200144)

にある通り

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

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


CC BY-SA 3.0
2015-10-27T05:13:20.793
18114
2015-10-27T16:00:12.040
9008
question
ruby-on-rails ruby
Rubyのメソッド名の末尾に = (イコール)


`hoge=` はいわゆるSetter です。  
値をセットするときは `foo.hoge = bar` と書くことができます。  
利点は メソッド名に「set..」「get..」を書かなくて良いという点でしょうか。


CC BY-SA 3.0
2015-10-27T09:28:41.443
18131
2015-10-27T09:28:41.443
5008
18114
answer


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

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

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


CC BY-SA 3.0
2015-10-27T16:00:12.040
18141
2015-10-27T16:00:12.040
3249
18114
answer