こんな感じの変数があるとして
{% set id = 1 %}
{% set user.1.name = 'hoge' %}
こうした時に、 id = 1
が入って、 user.1.name
になって、 hoge
が返ってくるのを期待しますがうまくいきません。
{{ user.id.name }}
=> 'user.id.name'
idが展開されていません。 idを展開させてあげたいのですが、どうしたらいいのでしょう
{{ user.'{{ id }}'.name }}
=> 'user.'{{ id }}'name'
{{ 'user.' + id + 'name' }}
=> user.1.name(idは展開されるけど名前が展開されない)
{{ 'user.' ~ id ~ 'name' }}
=> user.1.name(idは展開されるけど名前が展開されない)
この辺は全部ダメでした。結論から言うと、これでできます。
{{ user[id].name }}
=> 'hoge'
無駄に悩んだのでメモ。
三重展開とかすることが今後あるかわからないですが、その時も同じ手法で可能なのかきになるので今度調べてみよう