Rails - 重定向问题

Mr.*_*ack 0 ruby url redirect ruby-on-rails

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

requested_url = "/limited/username"  #It is constantly changing.  
redirect_to(requested_url || :action => "index", :controller => "demo")
Run Code Online (Sandbox Code Playgroud)

所以,它像这样重定向页面http://localhost:3000/demo/index?%2Flimited=username.但是,实际上我需要像这样重定向的URL http://localhost:3000/limited/username.

如果requested_url为空,则重定向正确.(http://localhost:3000/demo/index).但是,如果它不是空的话,那就会错误地重定向.

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

Cho*_*ett 6

||具有更高的运算符优先级=>,因此您的重定向调用被解释为

redirect_to( (requested_url || :action) => "index", :controller => "demo")
Run Code Online (Sandbox Code Playgroud)

试试这个:

redirect_to( requested_url || {:action => "index", :controller => "demo"})
Run Code Online (Sandbox Code Playgroud)