通过输入标记传递变量

时间:2013-10-08 17:16:50

标签: ruby-on-rails

我希望经过身份验证的管理员用户能够在网络表单中输入变量以进行替换。输入“电子邮件<<eric>><<jeremy>>”会将<<eric>><<jeremy>>替换为变量eric和jeremy的内容。

eric = "<a href='mailto:eric.roberts@example.com'>Eric Roberts</a>"
jeremy = "<a href='mailto:jeremy.smith@example.com'>Jeremy Smith</a>"
blurb = params[:my_input].gsub(/<<(\w+)>>/, "\#{\1}")

没有用,也没有使用$ 1或eval。输出将在网站上重新显示。只要管理员可以使用这些快捷变量,分隔符就不重要了。

1 个答案:

答案 0 :(得分:0)

也许更容易将替换字符串存储在散列中,其中键是替换字符串的名称。即:

substitutions = {
  'eric' => "<a href='mailto:eric.roberts@example.com'>Eric Roberts</a>",
  'jeremy' => "<a href='mailto:jeremy.smith@example.com'>Jeremy Smith</a>"
}

match = params[:my_input].match(/<<(\w+)>>/)
blurb = substitutions[match[1]] if match