Perl では、次のようなことができます。
my $home = "/home";
my $alice = "$home/alice";
YAML で次のようなことができますか。
Home: /home
Alice: $Home/alice
では、「アリス」は実質的/home/alice
に最終的にですか?
Perl では、次のようなことができます。
my $home = "/home";
my $alice = "$home/alice";
YAML で次のようなことができますか。
Home: /home
Alice: $Home/alice
では、「アリス」は実質的/home/alice
に最終的にですか?
残念ながら、あなたは運が悪いです。必要なことを行うに$home
は、ビュー ファイル (または任意の場所) から渡して、yaml エントリで補間する必要があります。これは次のようになります。
Alice: ! '%{home}/Alice'
あなたの質問に対する詳細な回答については、この StackOverflow Q&Aを参照してください。
ERB テンプレートを使用する必要があります。
次のように書くことができます。
Alice: <%=home%>/alice
home
使用する場合、 YAML としてパースする前に ERB で値をパースする必要があります。ホームがローカル変数の場合、#result メソッドの引数としてローカル バインディングを渡す必要があります。これを渡さない場合、TOP LEVEL バインディングがデフォルトとして使用されます。
このような:
require 'erb'
home = 'home'
YAML.load(ERB.new(yaml_content).result(binding))
私は最終的に使用しましYAML::AppConfig
たが、それは YAML ソリューションではなく、Perl 固有のソリューションです。$var
補間された s をYAML に含めることができます。