2

スペースを節約できるように、YAMLファイルで動的なキーの名前と値を作成したいと思います。

例えば:

KID(\ d +)_ AGE:&kid(params)_age
  kid(params): "18"

したがって、期待される結果は次のようになります。

KID1_AGE:&kid1_age
  kid1:「18」

したがって、KID1_AGE、KID2_AGEを配置すると、キーは動的になり、同じハッシュを取得します。

これを入手する方法について何か提案はありますか?これは主にRubyで使用されます。

ありがとうございました。

4

2 に答える 2

3

Railsを使用している場合、ファイルは最初にERbで解析されます

# foo.yaml

my_random: <%= Random.rand(1..100) %>

だからあなたは次のようなことをすることができます

<% 100.times do |n| %>
<%= "KID#{n}_AGE: &kid#{n}_age" %>
<% end %>

しかし、これはかなりコード臭い感じがします。実装方法ではなく、全体的な目的を説明する必要があります。

于 2013-02-15T15:54:32.140 に答える
2

正規表現パターンのように見える文字列をキーとして使用して、正規表現のように機能することを期待することはできません。YAMLとRubyはそのようには機能しません。また、正規表現パターンをハッシュのキーとして使用してから、ハッシュに文字列をスローし、キーを自動的に一致させて関連する値を返すことはできません。ハッシュとRubyはそのようには機能しません。

パターンに一致するキーを作成し、YAMLによって返されたハッシュをRubyにウォークスルーさせて、一致するキーを探すこともできますが、目的に基づいてスペースを節約することはできません。

エイリアスとアンカーを可能な限り完全に使用するYAMLの機能を使用します。ファイルが解析された後も必要な値へのアクセスを提供しながら、YAMLファイルを小さく保つことができます。

于 2013-02-15T18:08:46.600 に答える