Кажется, нет единой лучшей практики.
(1) Стандартный файл config/routes.rb
предполагает, что корневая страница (или домашняя страница / страница приветствия) должна обрабатываться welcome#index
. Если вы должны руководствоваться этим, то для генерации соответствующего welcome#index
контроллера / действия вы можете использовать следующую команду:
rails generate controller Welcome index
Затем в config/routes.rb
вы можете удалить маршрут GET (get "welcome/index"
), автоматически добавляемый генератором, и поместить корневой маршрут root 'welcome#index'
(или root :to => 'welcome#index'
в Rails < 4
) вверху файл, потому что он, вероятно, будет вашим самым популярным маршрутом и должен быть найден первым.
Также не забудьте удалить public/index.html
в Rails < 4
.
(2) Официальное руководство по маршрутизации Ruby on Rails использует PagesController
. На самом деле он предлагает pages#main
, хотя для меня более разумно использовать pages#home
(потому что «домашняя страница» - это повсеместный термин / понятие). Кроме того, этот контроллер может обрабатывать другие ориентированные на страницы действия , такие как pages#about
, pages#contact
, pages#terms
, pages#privacy
и т. Д.
(3) Учебное пособие по Ruby on Rails , идет с static_pages#home
и static_pages#help
и т. Д., Хотя мне не нравится идея обозначения этого контроллера с помощью «статический». Эти страницы, вероятно, все еще будут иметь некоторые динамические аспекты, особенно домашнюю страницу!
(4) Хотя здесь не обсуждается, как обрабатывать домашнюю страницу , RailsCast # 117 на полустатических страницах предлагает еще один набор подходов к show -только ресурсы.
Я чувствую предпочтение 1 и / или 2. В сценарии «и» вы можете использовать welcome # index и pages # about и т. Д., Тогда как в сценарии «или» вы можете использовать pages # home, pages # о и т. д. Если меня заставят выбирать, я бы выбрал вариант 2 только потому, что у вас меньше кода. Кстати, 2 и 3 почти одинаковы, за исключением слова «статический».