Skip to content

Archives

  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年10月
  • 2021年9月

Categories

  • カテゴリーなし
Trend RepositoryArticles and guides
Articles

Railsのルーティング

On 1月 18, 2022 by admin
  • ルーティングとはいったい何でしょうか?
  • Ruby on Railsではルーティングはどのように行われるのですか?
  • HTTP リクエスト メソッドの種類
  • http リクエストのデコード
  • Defining resources
  • シングルおよびマルチリソース
  • 入れ子のリソース
  • さらに勉強を続ける

ルーティングとはいったい何でしょうか?

ユーザーからアプリケーションへのHTTPリクエストがあったとき、それは正しいコントローラに誘導されるべきです。

Ruby on Railsではルーティングはどのように行われるのですか?

Railsでは、アプリケーションのルートはconfig/routes.rbに格納されます。 Rails のルーターは URL を認識し、コントローラのアクションにディスパッチします。 また、パスとURLを生成することもできるので、ビューで文字列をハードコーディングする必要がなくなります。 異なるホテルの部屋を予約するアプリケーションを考えて、この仕組みを見てみましょう。

HTTP リクエスト メソッドの種類

アプリケーションは HTTP リクエストを受信し、それに付随するメソッドを受け取りますが、これは次のようなメソッドです。

GET – リソースを取得する

POST – リソースを作成する

PUT – 完全にリソースを更新する

PATCH – 部分的にリソースを更新する

DELETE -リソースを削除する

これらのメソッドはどのコントローラ アクションメソッドが呼ばれるかを判断します。

http リクエストのデコード

アプリケーションがリクエストを受信すると、GET /hotels/1.

get '/hotels/:id', to: 'hotels#show'

同様に、

get '/hotels', to: 'hotels#index'get '/hotels/:id', to: 'hotels#show'get '/hotels/new', to: 'hotels#new'post '/hotels', to: 'hotels#create'get '/hotels/:id/edit', to: 'hotels#edit'put '/hotels/:id', to: 'hotels#update'delete '/hotels/:id', to: 'hotels#destroy'

TIP: もし、アプリケーションのすべてのルートをリストアップしたい場合は、端末で rails routes を使用し、もし、特定のリソースのルートをリストにしたい場合は、rails routes | grep hotel を使用することができます。

Defining resources

受付がすべての予約の記録を保持するように、アプリケーションも config/routes.rb に独自の記録を持ちます。

Rails.application.routes.draw do resources :hotelsend

を書くことにより、アプリケーションに 7 つのルートを作成し、すべて前述のように Hotels コントローラにマッピングします。

コントローラにこれらのアクションがいくつかしかない場合、次のキーワードで同じものを変更できます。resources :hotels, only:

含めたくないものに名前を付けるキーワード except もあります。

resources :hotels, except:

シングルおよびマルチリソース

時には、単一のリソース、つまり、ID を参照する代わりに単一のページにのみアクセスする必要がある場合があります。

resource :hotels

複数のリソースを定義する必要がある場合、

resources :hotels, :rooms と同じように動作します

入れ子のリソース

他のリソースの論理的子であるリソースから、/hotels/:id/rooms 入れ子のルートを持つことがあります。 たとえば、アプリケーションに次のモデルが含まれているとします。

class Hotel < ApplicationRecord has_many :roomsendclass Room < ApplicationRecord belongs_to :hotelend

この場合、リソースを次のように宣言します。

resources :hotels do resources :roomsend

この宣言により、/hotels/:id/rooms 、/hotels/:id/rooms/:id 、/hotels/:id/rooms/new などのネストした URL にアクセスできます。

さらに勉強を続ける

ルーティングについてもっと深く知りたい場合は、「外部から見るRailsルーティング」http://guides.rubyonrails.org/routing.html を参照してください。

カバー写真:Javier Allegue Barros on Unsplash (https://unsplash.com/photos/C7B-ExXpOIE)

コメントを残す コメントをキャンセル

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

アーカイブ

  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年10月
  • 2021年9月

メタ情報

  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org
  • DeutschDeutsch
  • NederlandsNederlands
  • SvenskaSvenska
  • DanskDansk
  • EspañolEspañol
  • FrançaisFrançais
  • PortuguêsPortuguês
  • ItalianoItaliano
  • RomânăRomână
  • PolskiPolski
  • ČeštinaČeština
  • MagyarMagyar
  • SuomiSuomi
  • 日本語日本語

Copyright Trend Repository 2022 | Theme by ThemeinProgress | Proudly powered by WordPress