Владелец сайта, над которым я работаю, попросил меня сделать страницу «О нас» редактируемой (через нее через веб-интерфейс). На самом деле, всего 5 страниц, которые она хочет сделать редактируемыми - О нас, Условия предоставления услуг и т. Д.
В старой реализации, когда эти страницы были файлами статического представления, все URL-адреса были закодированы в routes.rb
scope :controller => :home do
get :about
get :terms
# etc ...
end
Теперь, когда эти различные действия извлекают данные из БД (или где-либо еще), кажется, что стандартный подход RESTful может заключаться в создании ресурса Pages
и объединении всех представлений в действие show
.
Это не совсем правильно. Отдельные ресурсы обычно не встраиваются в сайт так, как страница «О нас» - содержимое страницы может измениться, но сама страница никуда не денется, и в некоторых из них есть ссылки на нее в нижнем колонтитуле. электронные письма и т. д.
В частности, выделение отдельных маршрутов из PagesController вызовет следующие проблемы:
- Я не мог использовать именованные помощники маршрута, такие как
about_path
- Маршруты постоянных страниц на сайте будут храниться в базе данных, что означает, что ...
- обслуживание, вероятно, будет головной болью, поскольку это не обычное место для хранения маршрутов.
Так что в настоящее время я думаю, что лучший подход - оставить эти URL закодированными в routes.rb
и иметь отдельные действия контроллера, каждое из которых будет извлекать свою собственную страницу из БД.
Может кто-нибудь поделиться какой-то проницательностью? Как вы справляетесь с данными, которые не являются полностью статичными, но все же должны быть встроены в сайт?