searchコントローラのaddアクションにパラメータurlに"http://hatena.ne.jp"が渡るようにしたいです。
config/route.rbに
map.connect 'search/add/*url', :controller => 'search', :action => 'add'
と指定し、コントローラ内で
url=params[:url].join('/')
とすれば出来たのですが、いまいちスマートではない気がします。
よろしくお願いします。
map.connect 'top/url/:uri', :controller=>"top", :action=>"url", :uri=>/.*/
こう指定して、
http://localhost:3000/top/url/http://d.hatena.ne.jp/urekat
こういうアクセスをすると、
Processing TopController#url (for 127.0.0.1 at 2007-11-10 12:40:50) [GET]
Session ID: 692c8008bec6f0f50a342ddc0c54badf
Parameters: {"uri"=>"http://d.hatena.ne.jp/urekat", "action"=>"url", "controller"=>"top"}
こうなります。
回答ありがとうございます。
ずばり欲しかった情報を最初に頂いてしまいました。
config/route.rbで完結出来るのがスマートですよね。
:uri=>/.*/
は
の省略した書き方というのも調べてわかりました。
requirementsは条件を制限してマッチしにくくすることしか出来ないと思っていたのですが、条件を拡大することも出来るのですね。
勉強になりました。
回答ありがとうございました。