Railsのルーティングを極める(前編)

Railsのルーティングを極める(後編)もご覧ください。 こんにちは、hachi8833です。今回も弊社CTOの馬場さんによる勉強会のスライドを元に記事を書きました。執筆当時はRails3だったので、Rails4情報も追加しました。 Railsのルーティング(routes)を極めよう 2012/03 baba Railsのルーティングはきわめて自由度が高い分、気を付けないとすぐカオスになってしまいます。Railsのルーティングのコツについて勉強していきましょう。Railsのルーティングはconfig/routes.rbで設定します。 とにかくrake routes 追記: 現在はrakeコマンドがrailsコマンドに置き換えられつつあるので、rails routesを使うのがよいでしょう。 ルーティングを書く際にはrake routesを実行する癖をつけましょう。ルーティングを作成するだけでなく、Railsのデバッグ時にも有用で、迷ったらとにかくrake routesを実行してもいいくらいです。 rake routesは実行のたびにRails環境を読み込むので、そのままでは遅いので有名です。以下のような方法で高速化しましょう。 pryとpry-rails gemがインストールされているなら、rails consoleを起動しておいてshow-routesを実行 spring gemがインストールされているならspring rake routesとすれば2度目以降から高速になる dev環境が起動中ならhttp://localhost:3000/rails/infoを参照する (Rails 4) 改めて、RESTとは RESTとは、Railsに敷かれているレールの一つである概念で、REpresentational State Transferの頭字語です。その特徴は: ステートレスであること すべてを「リソース」で表す リソースは名前を持つ RESTに従っていることをRESTfulと呼んだりします。 RESTfulなURLの例 http://example.com/prefectures http://example.com/users/1 RESTの反対はRPC RESTのちょうど反対の概念がRPC(Remote Procedure Call)です。これはクエリ形式などと呼ばれることもあることからわかるように、?の後ろに問い合わせを&でつないで表現します。 RPC URLの例 http://example.com/index.php?action=prefecture_list&id=1 http://example.com/PrefectureList.aspx?id=1 http://example.com/xmlrpc Railsではresourcesでルーティングを記述することで自動的にRESTfulなルーティングが生成されます。 以下はusersコントローラとproductsコントローラへのルーティングです。 resources :users resources :products その場合、対応するコントローラにもRESTfulなアクションが揃っている必要があります。rails generate scaffoldで生成した場合は自動的にRESTfulになります。 … Continue reading Railsのルーティングを極める(前編)