Rails:使用em空间连接数组

Joa*_*dyn 1 ruby arrays ruby-on-rails

是否可以在RoR中使用em空间加入数组?

IRB:

a = ["a", "b", "c"]
#=> ["a", "b", "c"]

a.join('    ')
#=> "a    b    c"

a.join(' ')
#=> "a b c"

a.join(' ')
#=> "a b c"

a.join(' ')
#=> "a b c"
Run Code Online (Sandbox Code Playgroud)

但是由浏览器呈现,a.join(' ')仍然会吐出来a b.

Ste*_*fan 5

由浏览器呈现我的代码a.join(' ')仍然吐出来a b

这是因为Rails默认&会转义特殊字符:变为&amp;,<变为&lt;等等.您必须将包含HTML实体(甚至标签)的字符串显式标记为html_safe:

'&emsp;'.html_safe
Run Code Online (Sandbox Code Playgroud)

由于内置join会使HTML安全标记无效,Rails提供safe_join:

<%= safe_join(['a', 'b', 'c'], '&emsp;'.html_safe) %>
Run Code Online (Sandbox Code Playgroud)

在视图中,您还可以使用raw帮助程序:

<%= safe_join(['a', 'b', 'c'], raw('&emsp;')) %>
Run Code Online (Sandbox Code Playgroud)

  • @JoannaGaudyn _"将在一种方法中工作"_ - 你的意思是在模型中?YMMV,但由于该方法输出HTML,您可以考虑将其转换为视图助手. (2认同)