Railsでは、リソースフルルートはHTTP動詞やURLとコントローラアクションとのマッピングを提供します。 慣習として、各アクションはデータベースの特定のCRUD操作にもマッピングされます。 ルーティングファイルに
resources :photos
のようなエントリを1つ書くと、アプリケーションに7つのルートが作成され、すべてがPhotosコントローラにマッピングされます:
GET /photosGET /photos/newPOST /photosGET /photos/:idGET /photos/:id/editPATCH/PUT /photos/:idDELETE /photos/:id
このブロック構文を使用すると、リソースは無限にネストすることもできます。
resources :photos do resources :commentsend
これにより、次のコメント ルートが生成されます:
Options
ベース#match と同様のオプションを使用します:
:path_names
編集および新規操作のセグメント コンポーネントを変更できるようにします。
resources :posts, path_names: { new: "brand_new" }
上記の例では、/posts/new が /posts/brand_new に変更されます
:path
リソースのパスプレフィックスを変更できます。
resources :posts, path: 'postings'
リソースとすべてのセグメントは、今後 /posts ではなく /postings にルートします
:only
与えられたアクションに対してのみルートを生成します。
resources :cows, only: :showresources :cows, only:
:except
指定されたアクション以外のすべてのルートを生成します。
resources :cows, except: :showresources :cows, except:
:shallow
入れ子になったリソースに浅いルートを生成します。親リソースに配置すると、すべての入れ子になったリソースに浅いルートを生成します。
resources :posts, shallow: true do resources :commentsend
以下と同じです。
これにより、/posts/a-long-permalink/comments/1234 などのブログ投稿のコメントなど、他の方法では深いネストになるリソースの URL を、単に/comments/1234 に短縮することができます。
:shallow_path
指定したパスでネストのシャロールートを接頭させることがあります。
scope shallow_path: "sekret" do resources :posts do resources :comments, shallow: true endend
コメントリソースには、次のルートが生成されます:
:shallow_prefix
指定された接頭辞でネストしたシャロウルート名をプレフィックスします。
scope shallow_prefix: "sekret" do resources :posts do resources :comments, shallow: true endend
The comments resourcehere will have the following routes generated for it:
:format
Allow the default value for optional formatsegment or disable by supplying false.
Examples
ここでコメントリソースは、次のルートを生成します。