登録(new)画面で、フォームを生成してユーザーからの入力を登録する実装。
<%= form_for(@person) do |f| %> <%= f.label :age, '年齢' %> <%= f.select :age, ["20代", "30代", "40代", "50代", "60代以上"], :prompt => "選択してください" > <%= f.label :job, '職業' %> <%= f.text_field :job %> <%= f.submit '登録' %> <% end %>
こういう感じで書くと思いますが。
f.select の後に:age としたり、
f.text_fiedl :job としています。
このメソッドの後ろには「:」が付いてるのでシンボルを渡している事がわかります。
しかしこれは実はアクセサメソッドです。(Javaだとゲッターとかセッターとか言ったりするらしい)
Railsではシンボルを渡すと上手に解釈してくれて、
中で @person.ageや、@person.jobへのアクセス(変数の取得や代入)を行います。
selectメソッドの実態。第1引数がmethodになってる。
https://github.com/rails/rails/blob/v5.0.6/actionview/lib/action_view/helpers/form_options_helper.rb#L816
これは
こちらのattr_accessorの解説とも共通してるので理解の助けになる。