ruby 是否可以在YAML和ERB中使用三元运算符,如果可以,如何使用?

vd2z7a6w  于 2023-11-18  发布在  Ruby
关注(0)|答案(1)|浏览(122)

我已经尝试了下面的许多语法变体,但除了语法错误之外,没有得到任何其他东西(简单的erb插值可以自己工作,但逻辑三元运算符抛出语法错误):

start_prompt: "Drum roll please \U0001F941\U0001F941\U0001F941.
    <%= active_player_name %> will <%= @new_game ? "begin" : "continue" %> play.
    Let the game commence \U0001F3AC. And may the best player win \U0001F3C6."

字符串
任何想法,我如何才能让这个工作?(我意识到这将是更好的做法,写这样的逻辑在其他地方,但长话短说,在这种情况下,它只是更容易在这里,无论多么好或坏的做法,这是无论如何,我想知道如何/是否这是可能的。谢谢

k5ifujac

k5ifujac1#

YAML不像其他语言那样支持字符串插值。您可能需要在Ruby脚本中预处理YAML文件,然后将处理后的内容写入YAML文件。
下面是一个例子:

active_player_name = "John Doe"
new_game = true

yaml_content = <<~YAML
start_prompt: "Drum roll please \\U0001F941\\U0001F941\\U0001F941.
    #{active_player_name} will #{new_game ? "begin" : "continue"} play.
    Let the game commence \\U0001F3AC. And may the best player win \\U0001F3C6."
YAML

File.open('output.yaml', 'w') { |file| file.write(yaml_content) }

字符串
或者,您可以根据条件动态修改/替换yaml文件中的字符串

相关问题