在 ERB 模板视图中生成 HTML

Generate HTML in ERB Template View

我需要向 ERB 模板内的 HTML-选择器组合框添加选项。首先,我创建了一个名为 var_arr 的数组,其中包含 <option value="foo">Foo</option>-items,来自 items/values 的数组,例如 foo,然后我尝试将其写入 <select></select>-带有 each

的标签
<% var_arr.each do |option| %>
  <%= option %> 
<% end %>

它生成的是

<option value="article">Article</option> <option value="link">Link</option> <option value="photo">Photo</option> <option value="treenode">TreeNode</option> 

但它不被视为 HTML。这些选项未显示为下拉菜单中的选项。

这里隐藏的警告在哪里?

你的

冯·斯波茨

ERB 将变量中的文本视为文本而不是 html 您需要将选项标记为 html_safe 才能像这样将其视为 html。

<% var_arr.each do |option| %>
  <%= option.html_safe %>
<% end %>