This article was migrated from http://rai
Ruby on Railsでは、URLのマッピングに関する情報を routes.rbファイルに記述します。これを記述する際に、URLを丸ごとパラメータとして渡したい事があります。例えば、はてなブックマークでは、特定のURLに関するエントリーの情報を参照するためのURLは、こんな感じになります:
http://b.h
これがdel.icio.u
では、これと同じ事をRailsでやるにはどうしたら良いでしょうか。単純に考えると、routes.rbファイルに;
map.connect 'entry/:url ', :controlle r => 'entry', :action => :list
という感じに書けば良さそうです。しかし、実際にこのコードを実行してみると、URLに含まれる'/'がデリミタだと見なされてしまうため、うまく認識してくれません。
最後の'/'より後に続く部分をまとめてパラメータとして捕捉するためには、下記のように記述する必要があります。
map.connect 'entry/*url', :controlle r => 'entry', :action => :list
こうする事で、params[:url] には ActionCont
url = params[:url].to_s
とすると、パラメータとしてURLを丸ごと渡す事ができます。
This article was migrated from http://rai