2010-03-30 61 views
0

考慮下面的代碼片段:覆蓋默認的路由,如果沒有參數指定

get '/hello/:name' do |n| 
     "Hello #{n}!" 
    end 

我如何可以設置默認參數,如果沒有指定名稱?如果我可以將默認參數設置爲Tom,那麼這也會路由URL,/ hello /會自動重定向到/ hello/tom?

回答

1

我認爲你必須做這樣的事情:通過params[:splat]

get '/hello/' do 
    redirect '/hello/tom' 
end 

你可以做「你好/ *」和訪問它,如果你只是想爲邏輯一個地方。但是你仍然需要重定向到/ hello /的/ hello/tom url。

+0

所以,如果我添加該塊,/ hello/blah仍然會路由好嗎? – Tom 2010-03-30 09:55:20

+0

是的,他們是不同的「結束路徑」由路由器看到:) – gaqzi 2010-03-30 10:35:52