在Rails 3,你可以設置你的根路徑向右從配置/ routes.rb中其他地方重定向:Rails 3的路由:包括與根閃光燈PARAMS重定向
root :to => redirect("/dashboard")
這工作,但它打掉任何閃光參數傳遞給根。你怎麼能通過重定向傳遞他們?
更新:James Chen's solution,即重寫路線聲明爲root :to => redirect { |p, req| req.flash.keep; "/dashboard" }
,適用於我。但有兩件事我不明白:
p
是什麼意思,params?我試着用
do
/end
和換行重寫塊:root :to => redirect do |p, req| req.flash.keep "/dashboard" end
但這種失敗 「引發ArgumentError:重定向的說法不支持」。爲什麼是這樣?
是的,p表示PARAMS。 2.這很有趣。似乎我們在這裏有訂單問題。如果我們把'()'放在'redirect do'塊的周圍,那麼它就可以工作。我總是使用'{}',因爲如果塊太複雜,它表示我們應該爲此寫一個類。 – 2012-02-18 04:33:15
關於2,使用花括號與do/end來定義塊不同。 Ruby使用下面的語句:'root(:to => redirect)do#block傳遞給#root -parentheses可以被忽略-'使用大括號'root:to =>重定向{#block傳遞給#redirect}' – Macario 2013-01-31 19:31:04
@馬卡里奧你是說沒有括號的話,Ruby會將該塊解釋爲傳遞給'root'而不是'redirect'? – evanrmurphy 2013-01-31 20:00:40