Rails - проблема перенаправления - PullRequest
0 голосов
/ 13 сентября 2011

В моем проекте доступно много пользователей.У каждого пользователя своя домашняя страница.А также у меня есть домашняя страница по умолчанию.Мой действительный код здесь ..

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

Итак, он перенаправляет страницу следующим образом http://localhost:3000/demo/index?%2Flimited=username.Но на самом деле мне нужен перенаправленный URL-адрес, как это http://localhost:3000/limited/username.

Если requested_url пусто, он перенаправляет правильно(http://localhost:3000/demo/index).Но если он не пустой, он перенаправляет неправильно.

Скажите, пожалуйста, в чем здесь проблема?

Ответы [ 2 ]

6 голосов
/ 13 сентября 2011

|| имеет более высокий приоритет оператора, чем =>, поэтому ваш перенаправляющий вызов интерпретируется как

redirect_to( (requested_url || :action) => "index", :controller => "demo")

Попробуйте вместо этого:

redirect_to( requested_url || {:action => "index", :controller => "demo"})
0 голосов
/ 13 сентября 2011

Очевидно, что я не знаком с точными деталями того, что вы пытаетесь сделать здесь, но вы можете сделать что-то вроде этого:

before_filter :redirect_to_requested_url, :if => :requested_url_supplied?

def redirect_to_requested_url
  redirect_to ... get requested url somehow ...
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...