yuuki blog

プログラミング をアプトプットしています。

rails routesの見方

resourcesメソッドでルーティングを 定義した場合、アクションのルーティングを確認することができません。 そんなときは”rails routes”を使用します。

(ブラウザ上で"http://localhost:3000/rails/info"でみれます。)

 

ターミナル

  Prefix Verb   URI Pattern                                                                              Controller#Action

                     new_user_session GET    /users/sign_in(.:format)                                                                 devise/sessions#new

                         user_session POST   /users/sign_in(.:format)                                                                 devise/sessions#create

                 destroy_user_session DELETE /users/sign_out(.:format)                                                                devise/sessions#destroy

                    new_user_password GET    /users/password/new(.:format)                                                            devise/passwords#new

                   edit_user_password GET    /users/password/edit(.:format)                                                           devise/passwords#edit

                        user_password PATCH  /users/password(.:format)                                                                devise/passwords#update

                                      PUT    /users/password(.:format)                                                                devise/passwords#update

                                      POST   /users/password(.:format)                                                                devise/passwords#create

             cancel_user_registration GET    /users/cancel(.:format)                                                                  devise/registrations#cancel

                new_user_registration GET    /users/sign_up(.:format)                                                                 devise/registrations#new

               edit_user_registration GET    /users/edit(.:format)                                                                    devise/registrations#edit

                    user_registration PATCH  /users(.:format)                                                                         devise/registrations#update

                                      PUT    /users(.:format)                                                                         devise/registrations#update

                                      DELETE /users(.:format)                                                                         devise/registrations#destroy

                                      POST   /users(.:format)                                                                         devise/registrations#create

                                 root GET    /                                                                                        items#index

                          item_orders GET    /items/:item_id/orders(.:format)                                                         orders#index

                                      POST   /items/:item_id/orders(.:format)                                                         orders#create

                                items GET    /items(.:format)                                                                         items#index

                                      POST   /items(.:format)                                                                         items#create

                             new_item GET    /items/new(.:format)                                                                     items#new

                            edit_item GET    /items/:id/edit(.:format)                                                                items#edit

                                 item GET    /items/:id(.:format)                                                                     items#show

                                      PATCH  /items/:id(.:format)                                                                     items#update

                                      PUT    /items/:id(.:format)                                                                     items#update

                                      DELETE /items/:id(.:format)                                                                     items#destroy

  

"routes.rb"で定義したルーティングの出力結果の意味は一番上の項目にあります。

 

Prefix

Prefixはパスが代入されている変数のようなものです。
Prefixを使うときは末尾に_pathと追記します。
prefixを確認するとルートパスを表す/というパスはrootになっています。
なのでlink_toのパスを指定する場所には_pathをつけたroot_pathを書いてあげれば/で指定した記述と同じになります。

パスにidが入っているときはidの情報が入っているインスタンスを引数として渡してあげることにより指定ができます。
例えばusersコントローラーのshowアクションを動かすときは通常のパスだとusers/"ユーザーのid"になりますが、Prefixを使って書くとuser_path(@user)のような記述になります。
@userはコントローラーで@user = User.find(params[:id])などで記述してあげれば@userの中にはそのユーザーのidも含まれているのでuser_pathの引数として指定できます。

Verb

HTTPメソッドを表します。
URI Patternのパスにどのhttpリクエストでアクセスするかを示しています

 

get: リソースを取得する。サイトを閲覧する時に利用する。

post: リソースを保存する。

delete: リソースを削除する。

patch: リソースを更新する。

 

URI Pattern

ルーティングのパスを表します

Controller#Action

httpリクエストでパスが送られた際に処理が行われるコントローラとアクションを表します。
コントローラ名#アクション名です

 

CRUD

C(Create):生成

R(Read):読み取り

U(Update):更新

D(Delete): 削除