Ruby on rails Rails实例变量联接
这很简单,但我已经很久没有需要它了。 我有以下代码Ruby on rails Rails实例变量联接,ruby-on-rails,Ruby On Rails,这很简单,但我已经很久没有需要它了。 我有以下代码 <% @miniature.minisets.each do |miniset| %> <%= link_to miniset.name, miniset %> <% end %> 它输出Minisetname Minisetname Minisetname等 我希望它输出带有逗号的Minisetname、Minisetname、Minisetname 我试图包含.join(“,”,但找不到放置它
<% @miniature.minisets.each do |miniset| %>
<%= link_to miniset.name, miniset %>
<% end %>
它输出Minisetname Minisetname Minisetname
等
我希望它输出带有逗号的Minisetname、Minisetname、Minisetname
我试图包含.join(“,”
,但找不到放置它的正确位置。我是否还需要使用.map
而不是.each
耻辱。这里有一种方法应该有效:
<%= @miniature.minisets.map { |miniset| link_to miniset.name, miniset }.join(", ").html_safe %>
这里有一种应该有效的方法:
<%= @miniature.minisets.map { |miniset| link_to miniset.name, miniset }.join(", ").html_safe %>
这将返回转义链接。您需要在末尾添加.html\u safe
(有多种方法可以设置不应转义的字符串)。请注意,我还没有对此进行测试。由于Array#join
的工作方式,您可能还必须显式地将结果标记为HTML安全:这代替了使用each do
,因此不需要end
标记,对吗?出于某种原因,它正在破坏并显示html。它不需要结束标记。问题是我后来想到的(Lukas也提到过):HTML安全属性在连接过程中被删除。由于到输出的link\u应该已经被消毒,因此在这种情况下,只需添加.html\u safe
就足够了。链接文章更全面地讨论了这个问题。这将返回转义链接。您需要在末尾添加.html\u safe
(有多种方法可以设置不应转义的字符串)。请注意,我还没有对此进行测试。由于Array#join
的工作方式,您可能还必须显式地将结果标记为HTML安全:这代替了使用each do
,因此不需要end
标记,对吗?出于某种原因,它正在破坏并显示html。它不需要结束标记。问题是我后来想到的(Lukas也提到过):HTML安全属性在连接过程中被删除。由于到
输出的link\u应该已经被消毒,因此在这种情况下,只需添加.html\u safe
就足够了。链接文章更全面地讨论了这个问题。