Rails アプリ動作のバックグラウンド(基礎編)2
前回までに見たこと
基礎編1では、scaffoldでUsersリソースを作成して、indexページにアクセスするところまで見ました。
Listing users
Name Email
New User
今回はindexページから先をみて行きたいと思います。
/users/new と newアクション
indexページの New Userをクリックしたときに何が起こるのでしょうか。
views/users/index.html.erb
を開くと、一番下に
<%= link_to 'New User', new_user_path %>
という一文があります。これが New Userというリンクを表示しています。 ためしに
<%= link_to '新規ユーザー', new_user_path %>
とし、ページをリロードすると、リンクが
New Userから新規ユーザー
に変わっていることが確認できます。
そして、このnew_user_path
というところが、リンクのリンク先を指定しているところに成ります。
基礎編1のroutesの表を見てみましょう。
Prefix Verb URI Pattern Controller#Action new_user GET /users/new(.:format) users#new
このPrefixという列にあるものがリンク先を示す際の接頭辞となります。
この列に指定された接頭辞に、_path
をつけたものが対応するURLとなります。
これはRailsが自動でやってくれていることです。
この場合、new_user
がPrefixなので、new_user_path
とすることで、URLとして
/users/new
を指定することになります。
もう一つ、link_to ()
メソッドはデフォルトのHTTPメソッドがGET
となっています。 なので、
<%= link_to 'New User', new_user_path %>
で作られたリンクをクリックすると、GET /users/new
というリクエストをRailsに送るということになるわけです。
Railsはこの新たなリクエストを受けると、/users
ページのときと同様に、
定義されたroutingによって処理されるべきコントローラアクションにリクエストを送ります。
ここでは、上のroutesの表で確認すると、
UsersController
のnew
アクションで処理されることになっています。