Итак, я сейчас разрабатываю веб-сайт на рельсах. По сути, это статический сайт (но я использую рельсы, потому что в конечном итоге мой клиент хочет добавить функции блога и публикации), который имеет множество разных разделов с разными статьями в каждом разделе. Каждая статья разработана со своей собственной html-структурой, некоторые из них имеют таблицы, разделы, цвет шрифта и т. д., поэтому хранение этих статей в виде текста в базе данных не имеет смысла. Тем не менее, также не имело смысла иметь полностью отдельный html-файл для каждой статьи в каждом разделе, когда их родительский элемент будет иметь одинаковую общую структуру (под этим я подразумеваю, что каждый раздел в сайты, такие как about или публикации, будут иметь свой собственный уникальный макет, однако каждая статья, принадлежащая данному разделу, будет помещена в тот же div, что и родственные статьи.
Так у меня появилась идея. Я думал, что буду использовать партиалы для рендеринга уникального контента в одном и том же макете для каждого раздела. (имейте в виду, что в настоящее время в базе данных ничего не хранится.) Поэтому я думаю настроить сайт так, чтобы для разделов были разные папки просмотра, и внутри каждой из этих папок просмотра у меня будет еще одна папка с названием «контент». в котором я помещу конкретный html для данного маршрута.
Например, один из моих маршрутов «о нас» выглядит так
get 'about/:pagename', to: 'about#show'
Который отправляет параметр :pagename контроллеру для метода show, после чего я фиксирую этот параметр в переменной (в файле about_controller.rb)
def show
@content = params[:pagename].downcase
end
А затем представление show.html.erb отображает партиал с тем же именем, что и переменная @content.
<div><%= render partial: "about/content/#{@content}" %></div>
В этот момент представление просматривает папку содержимого в поисках определенного фрагмента, с которым оно вызывается, и отображает этот HTML-код.
Мой вопрос.... Это нетрадиционно? Я почти уверен, что знаю ответ на этот вопрос... да. Итак, мой дополнительный вопрос: насколько это плохо? Существуют ли какие-либо серьезные проблемы с разрушением веб-сайтов, которые я не могу предвидеть с моим ограниченным опытом работы с рельсами? Есть ли более простой и традиционный способ отображения контента, который я пропустил?