Это хорошее место, чтобы высушить код? - PullRequest
0 голосов
/ 23 октября 2011

Владелец сайта, над которым я работаю, попросил меня сделать страницу «О нас» редактируемой (через нее через веб-интерфейс). На самом деле, всего 5 страниц, которые она хочет сделать редактируемыми - О нас, Условия предоставления услуг и т. Д.

В старой реализации, когда эти страницы были файлами статического представления, все URL-адреса были закодированы в routes.rb

scope :controller => :home do
  get :about
  get :terms
  # etc ...
end

Теперь, когда эти различные действия извлекают данные из БД (или где-либо еще), кажется, что стандартный подход RESTful может заключаться в создании ресурса Pages и объединении всех представлений в действие show.

Это не совсем правильно. Отдельные ресурсы обычно не встраиваются в сайт так, как страница «О нас» - содержимое страницы может измениться, но сама страница никуда не денется, и в некоторых из них есть ссылки на нее в нижнем колонтитуле. электронные письма и т. д.

В частности, выделение отдельных маршрутов из PagesController вызовет следующие проблемы:

  • Я не мог использовать именованные помощники маршрута, такие как about_path
  • Маршруты постоянных страниц на сайте будут храниться в базе данных, что означает, что ...
  • обслуживание, вероятно, будет головной болью, поскольку это не обычное место для хранения маршрутов.

Так что в настоящее время я думаю, что лучший подход - оставить эти URL закодированными в routes.rb и иметь отдельные действия контроллера, каждое из которых будет извлекать свою собственную страницу из БД.

Может кто-нибудь поделиться какой-то проницательностью? Как вы справляетесь с данными, которые не являются полностью статичными, но все же должны быть встроены в сайт?

1 Ответ

1 голос
/ 24 октября 2011

Если вы хотите разрешить уценку, мне нравится идея контроллера и модели Pages.Если ваш макет кажется, что все 5 страниц должны выглядеть одинаково, то я бы выбрал один шаблон, который заполняется пользовательским контентом и соответствующей навигацией.

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

Трудно сказать, не зная больше о вашем сайте, но я предпочитаю не позволять пользователям создавать страницы, отражающие идентичность сайта (О, условия и т. Д.), За исключением случаев, когда они платят за это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...