Я пытаюсь понять, как отображать пользовательские HTML объекты, созданные пользователями. Например, пользователь может создать кнопку (кнопки) с настраиваемым стилем со следующими свойствами: color
, font-size
и border-radius
. Вот пример моего json
:
[
{
id: 2,
configs: {
color: "#000000",
font_size: 10,
border_radius: 0,
display: true,
button_1: [
{
color: "red",
font_size: 12,
border_radius: 4,
display: true,
}
],
},
created_at: "2020-05-07T21:42:04.808Z",
updated_at: "2020-05-07T21:42:04.808Z",
},
{
id: 3,
configs: {
color: "#000000",
font_size: 10,
border_radius: 0,
display: true,
button_1: [
{
color: "blue",
font_size: 15,
border_radius: 24,
}
],
button_2: [
{
color: "pink",
border_radius: 2,
}
],
},
created_at: "2020-05-07T22:29:31.255Z",
updated_at: "2020-05-07T22:29:31.255Z",
},
]
Я хочу отображать все кнопки в соответствии с настройками стиля пользователя. Пробовал что-то вроде:
%p #{btn.id}: #{btn[:configs][:button_1][0][:color][:font_size]}
Но не выглядит практичным. Кроме того, в некоторых случаях это может привести к ошибке:
undefined method `[]' for nil:NilClass
Я пробовал использовать гем вроде activerecord-typedstore , но похоже, что он не поддерживает вложенные атрибуты ( Есть ли способ освоить вложенный json со столбцом json? ). Есть ли способ отображать настраиваемые кнопки на основе критериев пользователя?