REST

 

残り

花見は、ネイティブがあるRESTのサポートを。

ルーティングレベルで、そこにそれらを宣言するために使用することができる2つの方法は、次のとおりresourcesresource。前者は特異なもののために、後者は、複数のリソースのためです。

リソースを宣言すると発生することを意味し、いくつかのデフォルトルートコードは1行だけでは。

 

RESTfulなリソース

 

デフォルトルート

# apps/web/config/routes.rb
resources :books

これは、生成します

Verb Path Action Name Named Route
GET /books Books::Index :index :books
GET /books/:id Books::Show :show :book
GET /books/new Books::New :new :new_book
POST /books Books::Create :create :books
GET /books/:id/edit Books::Edit :edit :edit_book
PATCH /books/:id Books::Update :update :book
DELETE /books/:id Books::Destroy :destroy :book

 

ルートを削除します

ケースでは、我々が使用できるすべてのデフォルトルートは必要ありません:onlyし、一つ以上のアクション名を渡すことを。また、ブラックリストのルートとすることができます:except

resources :books, only: [:new, :create, :show]

# equivalent to

resources :books, except: [:index, :edit, :update, :destroy]

 

ルートを追加します

デフォルトルートと並んで、我々は(単一のための余分なルートを指定することができますmember)または複数の(collection)リソース。

resources :books do
  member do
    # Generates /books/1/toggle, maps to Books::Toggle, named :toggle_book
    get 'toggle'
  end

  collection do
    # Generates /books/search, maps to Books::Search, named :search_books
    get 'search'
  end
end

 

構成するコントローラ

私たちは名前のコントローラ持っている想像してみてmanuscripts、私たちのようなアクションを持っている、Manuscripts::Indexしかし、我々はまだのようにそれらのリソースを公開します/books。使用する:controllerオプションは、私たちの一日が保存されます。

resources :books, controller: 'manuscripts'

# GET /books/1 will route to Manuscripts::Show, etc.

 

RESTfulなリソース

resource :account

これは、生成します

Verb Path Action Name Named Route
GET /account Account::Show :show :account
GET /account/new Account::New :new :new_account
POST /account Account::Create :create :account
GET /account/edit Account::Edit :edit :edit_account
PATCH /account Account::Update :update :account
DELETE /account Account::Destroy :destroy :account

 

ルートを削除します

resource :account, only: [:show, :edit, :update, :destroy]

# equivalent to

resource :account, except: [:new, :create]

 

ルートを追加します

resource :account do
  member do
    # Generates /account/avatar, maps to Account::Avatar, named :avatar_account
    get 'avatar'
  end

  collection do
    # Generates /account/authorizations, maps to Account::Authorizations, named :authorizations_account
    get 'authorizations'
  end
end

 

構成するコントローラ

resource :account, controller: 'customer'

 

ネストされたリソース(複数可)

RESTfulなリソース(複数可)、両親の範囲内で可能な内部リソースを作るために入れ子にすることができます。

 

複数の複数の

resources :books do
  resources :reviews
end

これは、書籍や、次のもののためのデフォルトルートを生成します。

Verb Path Action Name Named Route
GET /books/:book_id/reviews Books::Reviews::Index :index :book_reviews
GET /books/:book_id/reviews/:id Books::Reviews::Show :show :book_review
GET /books/:book_id/reviews/new Books::Reviews::New :new :new_book_review
POST /books/:book_id/reviews Books::Reviews::Create :create :book_reviews
GET /books/:book_id/reviews/:id/edit Books::Reviews::Edit :edit :edit_book_review
PATCH /books/:book_id/reviews/:id Books::Reviews::Update :update :book_review
DELETE /books/:book_id/reviews/:id Books::Reviews::Destroy :destroy :book_review

 

単数への複数の

resources :books do
  resource :cover
end

これは、書籍や、次のもののためのデフォルトルートを生成します。

Verb Path Action Name Named Route
GET /books/:book_id/cover Books::Cover::Show :show :book_cover
GET /books/:book_id/cover/new Books::Cover::New :new :new_book_cover
POST /books/:book_id/cover Books::Cover::Create :create :book_cover
GET /books/:book_id/cover/edit Books::Cover::Edit :edit :edit_book_cover
PATCH /books/:book_id/cover Books::Cover::Update :update :book_cover
DELETE /books/:book_id/cover Books::Cover::Destroy :destroy :book_cover

 

複数への特異

resource :account do
  resources :api_keys
end

これは、デフォルトのアカウントのルートと、次のものを生成します。

Verb Path Action Name Named Route
GET /account/api_keys Account::ApiKeys::Index :index :account_api_keys
GET /account/api_keys/:id Account::ApiKeys::Show :show :account_api_key
GET /account/api_keys/new Account::ApiKeys::New :new :new_account_api_key
POST /account/api_keys Account::ApiKeys::Create :create :account_api_keys
GET /account/api_keys/:id/edit Account::ApiKeys::Edit :edit :edit_account_api_key
PATCH /account/api_keys/:id Account::ApiKeys::Update :update :account_api_key
DELETE /account/api_keys/:id Account::ApiKeys::Destroy :destroy :account_api_key

 

単数への特異

resource :account do
  resource :avatar
end

これは、デフォルトのアカウントのルートと、次のものを生成します。

Verb Path Action Name Named Route
GET /account/avatar Account::Avatar::Show :show :account_avatar
GET /account/avatar/new Account::Avatar::New :new :new_account_avatar
POST /account/avatar Account::Avatar::Create :create :account_avatar
GET /account/avatar/edit Account::Avatar::Edit :edit :edit_account_avatar
PATCH /account/avatar Account::Avatar::Update :update :account_avatar
DELETE /account/avatar Account::Avatar::Destroy :destroy :account_avatar