在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