0

在支持 Ruby 应用程序的 HTML 中有一个 do 循环:

<% @list.each do |object| %>
    <option value="<%= object['name'] %>"><%= object['name'] %></option>
<% end %>

希望能够过滤<option value="<%= object['name'] %>">项目以获取引号以保留最终的 HTML——有没有一种简单的方法可以做到这一点?

4

2 回答 2

1

如果这是一个 Rails 应用程序,那么我建议使用其中一个内置帮助程序,如下所示:

options_for_select(@list.map{ |object| [object['name'], object['name']] })

如果没有,那么也许只是 gsub:

<option value="<%= object['name'].gsub("\"","") %>">
于 2012-11-26T05:29:04.017 回答
1

在纯 Ruby 中,您可以使用CGI::escapeHTML,如下所示:

<% @list.each do |object| %>
    <% escaped_value = CGI::escapeHTML(object['name']) %>
    <option value="<%= escaped_value %>"><%= escaped_value %></option>
<% end %>

您必须执行require 'cgi', 才能使用它。

如果您使用的是 Rails,最好使用options_for_select,或者根据您的需要使用select_tagselect ,如另一个答案所示

于 2012-11-26T06:19:37.160 回答