Rails におけるルーティング
参考:
Rails のルーティング | Rails ガイド [公式]
Rails のルーティング | Rails 日本語ドキュメント (Ruby STUDIO)
使い方
参考:
Rails のルーティングを極める 前編 | TechRacho
Rails のルーティングを極める 後編 | TechRacho
書き方
参考:
Rails のルーティングを理解する | DEBUGLIFE
まとめ
参考:
root
root to: "search#index"
参考:
root – ActionDispatch::Routing::Mapper::Resources | Ruby on Rails API [Official]
root – rails/mapper.rb at v5.2.3 · rails/rails – GitHub
redirect
引数またはブロックで指定したパスへリダイレクトするルーティングを作成する。
参考:
redirect – ActionDispatch::Routing::Redirection | Ruby on Rails API [Official]
Accessing URL helpers in routes.rb – Stack Overflow
direct
名前付きパスを直接定義する。
参考:
ルーティングの定義で外部 URL も自然に書ける direct メソッドの使い方 – Qiita
direct – ActionDispatch::Routing::Mapper::CustomUrls | Ruby on Rails API [Official]
ルーティングを確認する
定義されているルーティングの一覧を表示する。
$ rails routes
grep
で表示するルーティングを絞り込む。
$ rails routes | grep users
一覧ページを表示する。(開発サーバーにブラウザからアクセスする。)
http://localhost:3000/rails/info/routes
参考:
bundle exec rails routes で特定の routes のみ表示する – Qiita
rake routes コマンドで特定のリソースのみ確認する | ピスタチオを食べながら rails を楽しむ
Rails console で Rails routes を詳しく確認する方法 – Qiita
rails routes コマンドの出力結果を見やすく直す – Qiita
Rails 4.0 は rake routes いらず | おもしろ web サービス開発日記
How To Search Rails Routes | Natasha The Robot
Rails 5 improves searching for routes with advanced options | BigBinary Blog
Can I rake the routes for a specific resource? – Stack Overflow
エンジンをマウントする
パスを指定してエンジンをマウントする。
Rails.application.routes.draw do # ... mount MyAdmin::Engine => "admin", as: "my_admin" # ... end
as:
オプションで付けた名前でルーティングのヘルパーが生成される。
my_admin_path #=> "/admin" my_admin.users_path #=> "/admin/users
参考:
マウントしたエンジンとメインのアプリ間でのアクセス – Qiita
mount – ActionDispatch::Routing::Mapper::Base | Ruby on Rails API [Official]
Named routes in mounted rails engine – Stack Overflow
What does the “mount” instruction mean in Rails routing? – Stack Overflow
ルーティングのネスト
参考:
初心者じゃなくても役に立つかもしれない Rails の routing の記述方をまとめてみた | まっしろけっけ
namespace
参考:
コントローラの名前空間とルーティング | Rails ガイド [公式]
namespace と scope の違い
参考:
route の module と namespace と scope の違い – Qiita
コントローラの名前空間とルーティング | Rails ガイド [公式]
module
ルーティングのパスとは独立してコントローラーが定義されているモジュール名を指定する。
参考:
コントローラの名前空間とルーティング | Rails ガイド [公式]
Rails routing for top-level inside a scope and resource – Stack Overflow
リソースのルーティング
参考:
リソースベースのルーティング | Rails ガイド [公式]
only / except
参考:
ルーティングの作成を制限する | Rails ガイド [公式]
resources における member と collection
参考:
Rails で自動生成以外の route を追加する – Qiita
ルーティング member と collection の違い | きゃまなかのブログ
Rails のルーティングを極める 後編 | TechRacho
member – ActionDispatch::Routing::Mapper::Resources | Ruby on Rails API [Official]
collection – ActionDispatch::Routing::Mapper::Resources | Ruby on Rails API [Official]
collection
参考:
Rails で一度に全部処理するときの Routes 問題 | blog.takuyan.com
collection – ActionDispatch::Routing::Mapper::Resources | Ruby on Rails API [Official]
path
参考:
How to remove controller names from rails routes? – Stack Overflow
as
参考:
名前付きヘルパーをオーバーライドする | Rails ガイド [公式]
名前付きルーティングヘルパーにプレフィックスを追加する | Rails ガイド [公式]
名前付きリソースで :as を使用する | Rails ガイド [公式]
How to name a route in rails – Stack Overflow
Route alias in Rails – Stack Overflow
パラメータをカスタマイズする
- defaults
- scope
- constraints
- default_url_options
- to_param
参考:
How can I globally override a rails url helper? – Stack Overflow
単数形のリソース
参考:
match
参考:
Rails 3 のルーティング定義について | おもしろ web サービス開発日記
match … via: と get … as: の使い方 | tkymtk’s blog
constraints
参考:
Rails routing to handle multiple domains on single application – Stack Overflow
How can I use Rails routes to redirect from one domain to another? – Stack Overflow
subdomain
参考:
Rails でリソースごとにサブドメインを分ける運用 – Qiita
host
参考:
Rails3 で1つのアプリケーション内に複数ドメインのサービスを提供させる方法 | HK’s Weblog
How can I use Rails routes to redirect from one domain to another? – Stack Overflow
OPTIONS メソッドのルーティング
参考:
Rails のルーティングで多数の HTTP OPTIONS をうまく扱う方法 翻訳 | TechRacho
path_for / url_for
参考:
path_for – ActionDispatch::Http::URL | APIdock
url_for – ActionDispatch::Routing::UrlFor | APIdock
ActionDispatch::Routing::Mapper
参考:
ActionDispatch::Routing::Mapper | Ruby on Rails API [Official]
rails/mapper.rb at v5.2.3 · rails/rails – GitHub
ActionDispatch::Routing::RouteSet
参考:
ActionDispatch::Routing::RouteSet | Ruby on Rails API [Official]
rails/route_set.rb at v5.2.3 · rails/rails – GitHub
draw
参考:
draw – rails/route_set.rb at v5.2.3 · rails/rails – GitHub
ルーティングを複数のファイルで定義する
参考:
Rails の routes.rb を複数のファイルに分割する | 日々雑記
reload_routes!
ルーティングを明示的に再読み込みする。
Rails.application.reload_routes!
参考:
Rails のルーティング定義を再読み込みする – Qiita
reload_routes! – Rails::Application | Ruby on Rails API [Official]
Reloading not working correctly (Rails engine) · Issue #358 · ruby-grape/grape – GitHub
How to forcefully reload (engine’s) route? – Stack Overflow
how to reload routes /config/routes/* in rails 4? – Stack Overflow
recognize_path
参考:
URL (path) の文字列から Routing パラメーターの Hash に変換する – Qiita
Rails で遷移元の controller、action 名などを取得する方法とエラー対応 – Qiita
1個前の controller と action を取得する | たれみみマンデー
recognize_path – rails/route_set.rb at v5.2.2.1 · rails/rails – GitHub
Rails.application.routes.recognize_path does not recognize POST route – Stack Overflow
JsRoutes
ルーティングを JavaScript から参照する。
参考:
railsware/js-routes: Brings Rails named routes to javascript – GitHub
Rails の js-routes を Webpacker でも使うには | PIYO
Rails URL Helpers in Javascript with JsRoutes | SitePoint
How to make it works with webpacker? · Issue #237 · railsware/js-routes – GitHub
Accessing rails routes in javascript – Stack Overflow
js_rails_routes
参考:
increments/js_rails_routes: Generate a ES6 module that contains Rails routes – GitHub