Я запускаю проект через несколько недель, который является webapp, который обрабатывает веб-сайты на нескольких языках для дочерних компаний той же компании. Хотя внешний интерфейс может выглядеть по-другому, все они подписываются на тот же дизайн модели под ним.Rails: Есть ли камень для обработки динамических полей?
Но одним из основных требований является то, что каждое дочернее предприятие может выбрать, какие поля модели будут отображаться на их веб-сайте.
Например: Там Program
моделирует
class Program < AR
attr_accessible :starting_at, :ending_at, :name, :price, :country
end
Так что, если у меня есть две дочерних компании, то есть США и Швеция, они оба используют ту же самую модель для представления программ. Но филиал в США хочет показать таблицу со всеми программами, и для каждой программы показываются только starting_at
, ending_at
, name
и price
. Шведский филиал хочет сделать то же самое, но не хочет показывать ending_at
, но country
.
Кроме того, они хотят иметь возможность выбирать, какие поля будут отображаться через веб-интерфейс, поскольку он может меняться со временем.
Итак, моя мысль была - так как происходит много метамоделирования, - чтобы придумать модель MetaProgram
, или так, где хранится информация, какое поле, для которого должно отображаться дочернее устройство, и т. Д. Но это приведет к динамические операторы SQL с ActiveRecord
, так как мне всегда нужно выбирать, какие поля должны быть выбраны, чтобы затем выбрать фактические данные, чтобы представить их через интерфейс ...
Есть ли лучшее решение для этого или камень, который ступает по этому поводу?
PS: Извините за двусмысленным названием
Я думаю, для этого потребовалось бы написать сверхвысокие cms, чтобы иметь это, как вы описали его выше. –
Но может быть, вы можете получить тот же результат проще, просто не показывая поля, которые ноль/пустые? –
Невозможно сделать последнее, потому что поля не будут пустыми. Просто не хочется, чтобы они показывались на итоговом уровне, но на подробной информационной этикетке. И да, это своего рода супер cms :-) – Vapire