Редактируемые блоки на странице (не связанные с моделью - связанные с SEO) в Ruby on Rails

Мои SEO-люди не пишут код. Все, что им нравится, это создание
хороших текстов. Все, что они могут сделать, это вставить тексты в
базу данных через некоторые приятные формы.

Проблема в том, что иногда они спрашивают меня: нам нужно
поместить *текст* в нижний колонтитул страницы. Нам нужно
добавить *какой-нибудь другой текст* в заголовок
страницы.

И я просто не могу редактировать код каждый раз, когда
SEO-мужчина спрашивает меня!

Иногда текст напрямую не связан с моделью. Я думаю, вы поймете
меня, что это плохая идея создать поле `footer_block`
внутри модели `Car` или `Person` .

Как хорошо было бы, если бы был камень, который мог бы:

1. Загрузка текстовых данных из базы данных по ключу (например,
«FOOTER\_BLOCK»). Позвольте мне не превращать модели в
беспорядок!
2. Дайте нам формы, где SEO-человек может вставить текст.
3. (Было бы хорошо) Дайте нам WISIWIG-редактор.

PS: Пример такой функциональности (но не в Ruby): я использовал
код в python/Django. И мы использовали пакет
`django-flatblocks` - он соответствовал этим 3
критериям.

Я не знаю ни одного драгоценного камня, который сделает это, но,
надеюсь, я смогу пролить свет на то, как вы могли бы это
достичь

---

**Блоки кода**

Вы можете создать таблицу (и модель) под названием
`code_blocks` . Схема может выглядеть так:

```
code_blocks
id | title | body | created_at | updated_at

```

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

---

<Сильный> Экран

Вы можете сделать это:

```
#app/helpers/application_helper.rb
def code_block(id)
    block = CodeBlock.find(id)
    return block.body
end

```

Это может быть неэффективным, но это позволит вам включать блоки
кода, которые вы хотите на странице, независимо от действий
контроллера

Так, например, у вас есть блок нижнего колонтитула с id как 3,
вы можете поставить:

```
<%= code_block(3) %>

```

---

<Сильный> правка

Это будет означать, что если у вас есть простая бэкэнд-форма, вы
можете настроить ее таким образом, чтобы вы отображали блоки по
заголовкам и разрешали ребятам SEO редактировать HTML с помощью
редактора WYSIWYG (сохранение HTML в `body` )