2.2 リソースでないルーティング

パラメータなしルーティングを定義する

リソースを利用せずに任意のURLをアクションにマッピングすることも可能です。その際、リソースのような自動的なマッピングは行われない為、個別にアクションを指定する必要があります。

パラメータを含まないルーティング

Rails.application.routes.draw do
  get 'settings', to: 'pages#settings'
end

生成されるルーティングは以下になります。

メソッド パス コントローラとアクション ヘルパー
GET /settings pages#index settings_path

パラメータありルーティングを定義する

定義するルーティングに:を指定するとパラメータとして判断されparamsにて利用することができます。

パラメータを含むルーティング

Rails.application.routes.draw do
  get 'posts/:id', to: 'posts#show'
end

生成されるルーティングは以下になります。

メソッド パス コントローラとアクション ヘルパー
GET /posts/:id posts#show

ルートのアクションを設定する

rootはURLの/に設定するルーティングです。rootは全てのルーティングの始まりなので、routes.rbの最初に記述してください。 また、設定できるHTTPメソッドはGETのみです。

/のルーティング

Rails.application.routes.draw do
  root 'posts#index'
end

ルーティングの名前を変更する

:asオプションを使用することでルーティングに名前をつけることができます。

registerルーティングにsignupという名前をつける

Rails.application.routes.draw do
  get 'register', to: 'users#create', as: :signup
end

生成されるルーティングは以下になります。

メソッド パス コントローラとアクション ヘルパー
GET /register users#create signup_path

パラメータの制限をする

:constraintsオプションを利用することで、正規表現による制限が可能になります。

数字のみ許可

Rails.application.routes.draw do
  get 'posts/:id', to: 'posts#show', constraints: { id: /[0-9]+/ }
end

results matching ""

    No results matching ""