rails redirect_to проблема - PullRequest
       10

rails redirect_to проблема

0 голосов
/ 16 июня 2009

Я занимаюсь разработкой приложения для rails и у меня есть вопрос.

В моих маршрутах.rb:

map.connect 'admin', :controller => "/admin/users", :action => "index"

Поэтому, когда я перехожу к «http://mydomain.com/admin",, он перенаправляет на« http://mydomain.com/admin/users/index". Тем не менее, адрес остается как "http://mydomain.com/admin". Таким образом, ссылки на странице неверны, потому что они созданы на основе "http://mydomain.com/admin".

Каково решение этой проблемы?

Sam

Ответы [ 4 ]

1 голос
/ 16 июня 2009

попробуйте это:

map.connect 'admin /: action /: id',: controller => 'admin / users'

0 голосов
/ 16 июня 2009

Ваш код не перенаправляет браузер, он просто настраивает / admin и / admin / users для запуска того же действия.

Вы можете попробовать:

map.connect 'admin', :controller => "/admin/users", :action => "redirect_to_index"

Тогда в вашем контроллере напишите:

def redirect_to_index
  redirect_to :action => :index
end

Это отправит перенаправление в браузер, в результате чего он отобразит правильный URL.

Надеюсь, есть лучший метод, который использует только маршруты. Rb. Этот сайт может быть полезен -> redirect-routing-plugin-for-rails

0 голосов
/ 16 июня 2009

Используйте link_to и button_to (в UrlHelper )

0 голосов
/ 16 июня 2009

Убедитесь, что все ссылки на тот же домен на странице начинаются с /, и используйте полный путь. Обычно вы должны использовать методы маршрутизации Rails, чтобы генерировать ваши ссылки, когда это возможно. То же самое касается использования помощников image_tag и stylesheet_link_tag.

Так что, если у вас есть ссылка на "privacy.html", измените ее на "/privacy.html", и вам будет хорошо, независимо от того, где вы находитесь в структуре маршрута. Это особенно приятно, когда вы начинаете извлекать код вида из кода для повторного использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...