Я создаю светильники YAML для приложения Rails, и значения нескольких ключей связаны между собой.Есть ли способ динамически установить эти значения на основе предыдущего значения?
Я рассмотрел использование якорей и ссылок YAML, но насколько я понимаю, они работают только для целых узлов (пример 2 ниже).
Я проверил документацию по приборам , но похоже, что я могу ссылаться только на идентификатор прибора (с Fixtures.identify(:reginald)
), а не на конкретное значение.
Я предполагал, что ERB будетпуть, но я не могу понять, как ссылаться на другие значения YAML из Ruby.Чтобы это работало, мне пришлось создать блок и передать переменные (пример 3 ниже).
# events.yml
# Example 1 - what I currently have. It works but there is a fair bit of repetition for ~25 entries
event1:
location: paris
number: 34
date: 2005-05-21
url: "http://www.example.com/paris/subfolder/events?eventNumber=34
# Example 2 - I was hoping to be able to reference previous values by key... anchors would work if they could be interpolated somehow:
event2:
location: &location london
number: &number 17
date: 2008-02-09
url: "http://www.example.com/{{*location}}/subfolder/events?eventNumber={{*number}}
# Example 3 - This is the best I could come up with but I don't think it's an improvement to have ~25 of these blocks
<% ['paris', 46].map do |location, number| %>
event3:
location: <%= location %>
number: <%= number %>
date: 2005-08-13
url: "http://www.example.com/<%= location %>/subfolder/events?eventNumber=<%= number %>
<% end %>
Есть ли какие-то другие подходы, которые мне не хватает?