Есть ли недостатки в использовании единственных имен для контроллеров и помощников? Кажется, ничто не полагается на это. Даже кажется, что помощникам не нужно делать такой же выбор относительно единственного и множественного числа, что и для соответствующих контроллеров, по крайней мере, согласно моим ограниченным экспериментам. Это правда?
ruby-on-rails
naming-conventions
allyourcode
источник
источник
Ответы:
Определенно множественное число .
С спокойной маршрутизацией и единственным контроллером
контроллер:
Маршруты:
Использование множественного контроллера
контроллер:
Маршруты:
rails generate controller --help
есть примеры во множественном числе:источник
Использование множественных имен для контроллеров - это просто соглашение.
Множественные имена обычно звучат более естественно (особенно для контроллеров, которые напрямую привязаны к определенной модели: Пользователь -> Пользователи и т. Д.), Но вы можете использовать все, что захотите.
Что касается помощников, все помощники доступны для всех контроллеров по умолчанию, поэтому технически то, как вы назовете своих помощников, не имеет никакого значения. Это просто еще одно соглашение - хранить вспомогательные функции контроллера в помощнике с тем же именем, что и у контроллера.
источник
Модель уникальна, потому что она ссылается на один объект, такой как User. Контроллер имеет множественное число, потому что это элементы управления (методы) для коллекции пользователей. Как назвать маршруты, все зависит от конкретного разработчика. У меня никогда не было пользователей, которые жаловались на то, что URL-адрес веб-запроса является единственным или множественным. Конечный результат для поддержания общего соглашения для нынешних и будущих участников при обслуживании качественных отображений страниц или запросов API для конечных пользователей.
источник
У вас есть очень полное объяснение в руководствах по Rails: http://edgeguides.rubyonrails.org/routing.html#resource-routing-the-rails-default
источник
По соглашению Rails один контроллер обрабатывает одну модель, независимо от того, могут ли один или несколько экземпляров этой модели существовать во время выполнения. Однако у вас может быть приложение Rails, в котором (некоторые) контроллеры (и связанные представления) не связаны с какой-либо конкретной моделью, а, скорее, обрабатывают более сложный набор функций. В этом случае автоматическое множественное число не имеет смысла.
Приложение Rails, над которым я сейчас работаю, попадает в эту категорию, и меня просто раздражает то, что Rails ожидает, что идентификаторы, которые я определяю как единственное число в одном месте, затем будут использоваться во множественном числе в других местах. Например, я мог бы захотеть определить что-то вроде этого в
config/routes.rb
:а затем я хочу, чтобы контроллер
DashboardController
отображал сводную информацию об определенных аспектах приложения, собирая информацию из более чем одной таблицы базы данных. Итак, здесьDashboard
нет ссылки на какую-либо модель приложения, и было бы странно иметь имя контроллераDashboardsController
.В этом ответе я нашел хорошее решение, которое раздражает автоматическое множественное число . Короче говоря, отредактируйте файл
config/initializers/inflections.rb
и добавьте к этому определению слова, которые вы не хотите автоматически использовать во множественном числе:источник
Соглашение об именах контроллеров в Rails поддерживает множественное число последнего слова в имени контроллера, хотя это не является строго обязательным (например,
ApplicationController
).Например,
ClientsController
предпочтительнееClientController
,SiteAdminsController
предпочтительнееSiteAdminControlle
r илиSitesAdminsController
, и так далее.Следование этому соглашению позволит вам использовать генераторы маршрутов по умолчанию (например, ресурсы и т. Д.) Без необходимости уточнять каждый
:path
или:controller
, а также сохранит согласованность использования URL и помощников пути во всем приложении.Ссылка: Соглашение об именах контроллеров - документ Rails
источник
Я чувствую себя лучше, когда использую единственное число для имени контроллера
источник
Если контроллер является ресурсом, он должен быть во множественном числе ...
Например
контроллер
Модель
Но вы можете использовать отдельные имена контроллеров, когда у вас нет соответствующих моделей, таких как
источник
Использование множественного числа просто звучит лучше, и тогда, если у вас есть контроллер, который обрабатывает единственный ресурс, то есть пользователя, вы все равно можете назвать url / user.
С помощниками часто нет необходимости иметь помощник для каждого контроллера, и часто будут вспомогательные методы, которые вы можете использовать для нескольких контроллеров и, скорее, засорять их через свой помощник приложения, вы можете поместить их в настраиваемые помощники вместо, например, layout_helper или любой другой другой хорошо названный файл.
источник