Вложенные жидкие шаблоны в Синатре - PullRequest
0 голосов
/ 25 января 2019

Согласно документации Sinatra вы передаете жидкие объекты в жидкий шаблон, например, так:

liquid :index, :locals => { :title => "My Sinatra App"}

для рендеринга в шаблоне, подобном

{{title}}

Кажется, что это не работает с вложенными объектами, например,

liquid :index, :locals => { :foo => { :bar => "baz" }}

Не позволяет мне ссылаться на значение бара в шаблоне жидкости, как

{{foo.bar}}

Есть ли какой-то особый способ построения вложенных жидких объектов для перехода в вид?Спасибо!

1 Ответ

0 голосов
/ 24 февраля 2019

Я имел дело с этой же проблемой и обнаружил, что если вы используете символы для определения подключей в хеш-коде локальных объектов, вы не получите ожидаемого поведения. Другими словами:

liquid :index, :locals => { :foo => { :bar => "baz" }}

не заставит {{ foo.bar }} делать то, что вы ожидаете. То, что вы хотите:

liquid :index, :locals => { :foo => { "bar" => "baz" }}

Это заменит {{ foo.bar }} значением baz, как вы ожидаете.

Учитывая такое поведение, это может быть полезным / актуальным последующим сообщением SO:

Как изменить ключи хеша с `Symbol`s на` String`s?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...