在Ruby中插入用户输入字符串

Mik*_*iet 1 ruby ruby-on-rails string-interpolation

我不能强烈地提出我现在需要的东西,但这个想法是这样的:

用户输入一些看起来像模板的字符串

'Welcome to #{country}!' # or 'Welcome to %%country%%!', it's not essential
Run Code Online (Sandbox Code Playgroud)

是否有一些宝石(或可能是像Erb这样的标准工具),可以做两件事:

  1. 验证给定的字符串(即,如果我允许仅country作为参数传递,则具有其他参数的字符串将无效)

  2. 使用传递的参数插入给定的字符串(即some_method('Welcome to #{country}!', country: 'Russia')) # => 'Welcome to Russia!')

saw*_*awa 9

"Welcome to %{country}!" % {country: "Russia"}
# => "Welcome to Russia!"

"Welcome to %{country}!" % {person: "John"}
# => KeyError: key{country} not found
Run Code Online (Sandbox Code Playgroud)