Использование неанглийских контроллеров в rails3 - PullRequest
2 голосов
/ 12 октября 2010

У меня следующая проблема:

Если я хочу следовать соглашению об именах Rails, я должен использовать множественную версию названия модели в качестве имени моего контроллера.

Пример:

rails g scaffold_controller Content

В этом случае у меня есть модель (Content), и предыдущая команда сгенерирует контроллер с именем Contents.

Так что, если у меня есть немецкий веб-сайт, и я хотел бы использовать site.tld / inhalt / что-то что-то вместо site.tld / content / что-то-что-то .

Я думал о двух решениях:

a, используйте немецкую версию слова при генерации контроллера (afaik не поддерживается генератором scaffold_controller

b, сгенерируйте весь сайт (модели, контроллеры) на английском языке и направьте конкретный запрос на определенный контроллер с именованными маршрутами, такими как:

match 'logout', :to => 'sessions#destroy'

В этом случае я не могу использовать RESTful маршруты, такие как:

resources :products

Что ты думаешь?

1 Ответ

2 голосов
/ 12 октября 2010

Вы можете использовать конфигурацию маршрутизации, чтобы изменить URL, соответствующий этому контроллеру:

resources :contents, :path_names => { :new => 'neue', :edit => 'bearbeiten' }, :path => 'inhalt'

Метод contents_path в вашем представлении все еще будет работать, но он будет выводить /inhalt, как требуется, и чтобудет соответствовать.Путь /contents не будет совпадать.Поэтому, если вы позвоните edit_content_path(@content), вы получите что-то вроде /inhalt/1/bearbeiten.

Подробнее см. Руководство по маршрутизации Rails .

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