В отдельной заметке, как вы обычно настраиваете маршруты для таких страниц, как и о контактах, которые появляются сразу после имени сайта?
Если следовать принципам REST (и вы, вероятно, должны), то по большому счету каждый URL должен быть заканчивающимся «ресурс» (то есть: существительное, «вещь»). Каждый ресурс, в свою очередь, имеет контроллер, и эти контроллеры имеют standardized and limited set of actions.
Это немного отличается от «классической» схемы маршрутизации, где контроллер будет иметь более разнообразные действия (и, таким образом, вы могли бы глыбу больше функциональности в один, больше контроллер)
Так, например, в успокоительная система:
- /контактные бы карта к ContactController и не «контакт» действие какого-либо другому контроллер (как это может в классической маршрутизации)
- /о бы аналогично карте к AboutController ,
- /site/about будет отображаться в AboutController, но это будет «вложенный» маршрут в пространстве имен Site. Если вы хотите получить хардкор о вложенности (и я обычно делаю), я бы:
- Поместить AboutController в модуль сайта (таким образом, сайты :: AboutController), который, в свою очередь, хранится в файле/приложении/контроллерах /site/about_controller.rb
- Создать SiteController
- Карта/сайт SiteController
Если вы имели существовавшие ранее сайт: AboutController сопоставляется с/сайта/о и вы хотите переназначить его/about, вы могли бы сделать это, используя @ rbaezam79's m енит. Тем не менее, я бы серьезно подумал о переносе и переименовании самого класса только для согласованности.
Все ресурсы, перечисленные выше, вероятно, будут рассмотрены как «одиночные» ресурсы. Это означает, что:
- использовать map.resource вместо map.resources, чтобы сопоставить маршруты
- действия по умолчанию является «шоу» (а не «Индекс», как это с не-одноплодными ресурсами). Обычно это будет единственное действие, в котором вы нуждаетесь. (Вы бы никогда не захотели создать или удалить свою страницу, не так ли?)
- имена обычно являются единственными, а не множественными. (Хотя я столкнулся с некоторыми камнями преткновения с этим)
При настройке таких маршрутов обязательно выполняйте команду «рейк-маршруты»; это покажет вам, что именно вы получаете в любой момент времени.
Давайте начнем делать заказ в Rails вопросах здесь. Теперь это беспорядок. Это дубликат моего старого вопроса: http://stackoverflow.com/questions/1722574/can-controller-names-in-restful-routes-be-optional –