在支持 Ruby 应用程序的 HTML 中有一个 do 循环:
<% @list.each do |object| %>
<option value="<%= object['name'] %>"><%= object['name'] %></option>
<% end %>
希望能够过滤<option value="<%= object['name'] %>">
项目以获取引号以保留最终的 HTML——有没有一种简单的方法可以做到这一点?
如果这是一个 Rails 应用程序,那么我建议使用其中一个内置帮助程序,如下所示:
options_for_select(@list.map{ |object| [object['name'], object['name']] })
如果没有,那么也许只是 gsub:
<option value="<%= object['name'].gsub("\"","") %>">
在纯 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_tag或select ,如另一个答案所示