[Rails][*Ruby]Rails初心者がルーティングについて全力で調べてみた(その2)
前回Rails初心者がルーティングについて全力で調べてみたという記事でRailsのルーティングについて調べました。今回はさらに調べた内容をまとめました。
今回も前回同様Rails3を対象としています。
下記のように記述すると、postsコントローラのindexアクションにparams[:yy]とparams[:mm]を渡すことができる。つまり、http://localhost/posts/11/22とすると、indexアクションの中でparams[:yy]に11が、params[:mm]に22が入る。また、http://localhost/posts/11やhttp://localhost/posts/のように省略することも可能。当然、省略した物の値は入らない。
[ruby]
match “/posts/(:yy(/:mm))’ => “posts#index”
[/ruby]
文字通りリダイレクト。
[ruby]
match “yahoo” => redirect(“http://yahoo.co.jp”) #外部サイトにリダイレクト
match “foo/:id” => redirect(“/bar/%{id}”) #/foo/1が指定されたら/bar/1にリダイレクトされる
[/ruby]
下記二つは同じ意味を表します。
[ruby]
get “posts/description”
match “posts/description” => “posts#description”, :via => “get”
[/ruby]この仕組についてはここに詳しい記事があります。
Rails3 のルーティングの仕組み
下記例ではhttp://localhost:3000/newやhttp://localhost:3000/deleteにアクセスすると、それぞれpostsコントローラのnewアクションとdeleteアクションが実行される。
[ruby]
controller :posts do
match ‘new’ => :new
match ‘delete’, => :delete
end
#まとめない書き方をすると
match “posts/new” => “posts#new”
match “posts/delete” => “posts#delete”
[/ruby]とこんな感じです。前回分合わせて初心者が困らない分位は調べられたと思います。後は困ったときに都度調べていこうかと思います。