我的项目中有很多用户可用。每个用户都有不同的主页。而且我有一个默认的主页。我的实际代码在这里..
requested_url = "/limited/username" #It is constantly changing.
redirect_to(requested_url || :action => "index", :controller => "demo")
因此,它会像http://localhost:3000/demo/index?%2Flimited=username
一样重定向页面。但是,实际上我需要重定向的网址,如http://localhost:3000/limited/username
。
如果requested_url
为空,则重定向正确。 (http://localhost:3000/demo/index
)。但是,如果它不是空的话,那就会错误地重定向。
请告诉我这里有什么问题?。
答案 0 :(得分:6)
||
的运算符优先级高于=>
,因此您的重定向调用被解释为
redirect_to( (requested_url || :action) => "index", :controller => "demo")
请改为尝试:
redirect_to( requested_url || {:action => "index", :controller => "demo"})
答案 1 :(得分:0)
显然,我并不知道你在这里要做的具体细节,但你可能会做这样的事情:
before_filter :redirect_to_requested_url, :if => :requested_url_supplied?
def redirect_to_requested_url
redirect_to ... get requested url somehow ...
end