В средах MVC (таких как Ruby on Rails) обычно моделирует заклинание как единственное число и контроллер и рассматривает заклинание как множественное число? - PullRequest
4 голосов
/ 23 мая 2010

Я обычно вижу книги Ruby on Rails, используя

script/generate model Story name:string link:string

, который является единственным Story, тогда как когда он является контроллером

script/generate controller Stories index

тогда Story теперь равно Stories, что во множественном числе.

Это стандарт для Ruby on Rails? Верно ли это и в других средах MVC, таких как CakePHP, Symfony, Django или TurboGears?

Я вижу, что в книге Rails Space контроллер также называется User, что совпадает с названием модели, и это единственное исключение, которое я вижу.

Обновление: также, когда скаффолд выполняется на Ruby on Rails, модель автоматически становится единственной, а контроллер и представление - множественным.

Ответы [ 2 ]

4 голосов
/ 23 мая 2010

Как правило, Rails имеет очень специфический формат для именования моделей, контроллеров и представлений, что не обязательно является единственным способом выполнения задачи. Традиция Rails - это:

  • Модели в единственном числе (например, история)
  • Контроллеры в множественном числе (т. Е. Рассказы)
  • Представления сортируются по папкам в соответствии с именем контроллера (т. Е. Stories / show.html.erb)

Джанго, похоже, использует аналогичное соглашение с:

  • Модели в единственном числе
  • «представления» (которые в основном являются контроллерами) не обязательно привязаны к конкретной модели
  • «шаблоны» не следуют определенному соглашению, хотя существует несколько.

Поскольку CakePHP (особенно), похоже, следует за каждым движением Rails, я ожидаю, что он следует тому же соглашению.

Что касается исключения, я бы предположил, что это связано с маршрутизацией URL. До Rails 2.3 (я думаю), маршруты Rails были автоматически установлены на основе имени контроллера (теперь маршрутизатор обладает гораздо большей гибкостью). Хотя они могут быть изменены, большинство людей решили не связываться с маршрутизатором. Я бы предпочел посетить yourwebsite.com/user/, чтобы войти в мою домашнюю страницу на веб-сайте, когда вы вошли в систему, чем yourwebsite.com/users/22.

Помните : соглашения существуют по определенной причине, но бывают случаи, когда соглашения разумно нарушаются. Соблюдайте «соглашение о конфигурации» только тогда, когда это имеет смысл.

1 голос
/ 23 мая 2010

Это действительно ваш выбор, однако в Ruby on Rails рекомендуется выбирать особые имена для моделей, так что по соглашению Rails создает хорошие имена для таблиц и т. Д. Контроллеры в Rails обычно находятся во множественном числе, потому что это создает хорошие маршруты (URL), но это не имеет значения.

...