Маршрутизация рельсов с требованиями - PullRequest
0 голосов
/ 13 января 2010

со следующими маршрутами я пытаюсь достичь цели, чтобы я мог представлять статические ресурсы, такие как условия использования, выходные данные и т. Д. На разных языках, используя разные URL.

Я определил два примера маршрута для моего отпечатка следующим образом:

map.imprint ':lang/impressum', :controller => "statics", :action => "imprint", :requirements => {:lang => /de/}
map.imprint ':lang/imprint', :controller => "statics", :action => "imprint", :requirements => {:lang => /en/}

Теперь, на мой взгляд, я пытаюсь использовать вспомогательный путь / URL следующим образом:

<%= link_to(t(statics.imprint.linkname), imprint_url(:lang => session[language])) %>

где там сессия [: язык] - "de" или "en".

В результате получается рабочая ссылка для маршрута de. Но английский не удается. Если я изменяю порядок маршрутов, это наоборот, а английский работает, а немецкий не работает.

Ошибка всегда выглядит так:

imprint_url failed to generate from {:controller=>"statics", :lang=>"de", :action=>"imprint"}, expected: {:controller=>"statics", :action=>"imprint"}, diff: {:lang=>"de"}

Может кто-нибудь помочь с этим?

Спасибо. Jason

1 Ответ

2 голосов
/ 13 января 2010

Насколько я знаю, вы не можете сопоставить два маршрута с одним и тем же именем.

Вам нужно будет переименовать один из них, т.е.
map.impressum
map.imprint

Когда Rails ищет маршрут, он останавливается на первом, который он находит, поэтому ваши ссылки de работают.

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