Как правило, Rails имеет очень специфический формат для именования моделей, контроллеров и представлений, что не обязательно является единственным способом выполнения задачи. Традиция Rails - это:
- Модели в единственном числе (например, история)
- Контроллеры в множественном числе (т. Е. Рассказы)
- Представления сортируются по папкам в соответствии с именем контроллера (т. Е. Stories / show.html.erb)
Джанго, похоже, использует аналогичное соглашение с:
- Модели в единственном числе
- «представления» (которые в основном являются контроллерами) не обязательно привязаны к конкретной модели
- «шаблоны» не следуют определенному соглашению, хотя существует несколько.
Поскольку CakePHP (особенно), похоже, следует за каждым движением Rails, я ожидаю, что он следует тому же соглашению.
Что касается исключения, я бы предположил, что это связано с маршрутизацией URL. До Rails 2.3 (я думаю), маршруты Rails были автоматически установлены на основе имени контроллера (теперь маршрутизатор обладает гораздо большей гибкостью). Хотя они могут быть изменены, большинство людей решили не связываться с маршрутизатором. Я бы предпочел посетить yourwebsite.com/user/, чтобы войти в мою домашнюю страницу на веб-сайте, когда вы вошли в систему, чем yourwebsite.com/users/22.
Помните : соглашения существуют по определенной причине, но бывают случаи, когда соглашения разумно нарушаются. Соблюдайте «соглашение о конфигурации» только тогда, когда это имеет смысл.