Rails - 重定向问题

时间:2011-09-13 13:17:59

标签: ruby-on-rails ruby url redirect

我的项目中有很多用户可用。每个用户都有不同的主页。而且我有一个默认的主页。我的实际代码在这里..

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)。但是,如果它不是空的话,那就会错误地重定向。

请告诉我这里有什么问题?。

2 个答案:

答案 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