Hy,
Я думал, что все мои сайты будут использовать ячейки, используя известную ячейку плагина для рельсов, так что это моя идея:
Таблица, которая содержит 3 поля: id, view_name и layout. макет будет сериализованным хэшем.
Когда запрос сделан, поле макета запрашивается и затем в представлении, макете по умолчанию, будет десериализован макет var, который выглядит следующим образом:
@layout [: sidecol] [: gallery] = {... некоторые параметры для него ...};
@layout [: maincol] [: comments] = {..params ...};
В коде <% #ruby для рендеринга ячеек в @layout [: sidecol]%> будет некоторый код ruby, который будет перебирать @layout [: sidecol] и отображать все ячейки в нем. то же самое происходит в главном div.
Что ты думаешь?
Положительный по моему мнению:
Более модульный
контроллер используется только для почты
легкое изменение структуры
Проще реализовать какой-то вид отслеживания, чтобы увидеть различия в том, какой макет лучше или нет.
Отрицательный:
еще не найден
EDIT:
1) Приходит запрос, вычисляется имя вида.
2) Загрузить из базы данных поле макета, соответствующее имени представления. (Это будет сохранено в кэше и будет обновляться только после внесения изменений. Я собираюсь использовать этот способ, потому что мне нужно будет протестировать макет. 33% макета 1, 33% макета 2 и 33% другого макета. Поэтому будет использоваться случайное число для выбора макета вида.)
3) Поле макета содержит: первое подразделение - это имя создаваемого div, затем в каждом из них будет больше компонентов, в данном случае именованных ячеек, которые будут созданы в контроллере приложения, потому что будут повторяться для всех запросов на получение.
4) В представлении будут созданы элементы div, которые будут отображаться в каждой определенной ячейке.
5) Ячейка сделает запрос к БД и загрузит данные.
6) Ячейка отобразит HTML-код и готова к работе!