【问题标题】:Ruby on Rails: Print element of array in a single line in html.erb fileRuby on Rails:在html.erb文件中的一行中打印数组元素
【发布时间】:2019-04-29 08:03:56
【问题描述】:

我是 html.erb 文件的新手,我没有找到问题的答案。 我有一组名称,我正试图将它们打印在段落标签<p> 的一行中,并带有“,”,如下所示:

name1, name2, name3

但是我得到了这个:

name1,
name2,

这是代码:

<% @names_array.each do |name| %>
  <p class="center"><%= name %>,</p>
<% end %>

【问题讨论】:

  • 由于您是新手,您可能需要阅读 html 元素,因为您的问题可以通过多种方式解决,例如使用 span 而不是 p,或更改pdisplay:inline 的样式。 w3schools.com/tags/tag_p.asp 也是 google 块与内联 html 元素。

标签: ruby-on-rails arrays ruby loops erb


【解决方案1】:

这样的东西不起作用吗?只需加入它们,将它们留在段落标签中:

<p class="center">
  <%= @names_array.join(', ') %>
</p>

【讨论】:

  • 它有效,但我在末尾有一个',':name1,name2,name3,我不想要最后一个','如何通过代码删除它?跨度>
  • @OfirSasson 如果上面的代码在末尾留下一个空逗号,则表示您的姓氏是空字符串 ("") 或 nil
【解决方案2】:

您可以使用 Active Support 的 to_sentence 方法。示例:

names = ['name1', 'name2', 'name3']

irb(main):001:0> names = ['name1', 'name2', 'name3']
=> ["name1", "name2", "name3"]

irb(main):002:0> names.to_sentence
=> "name1, name2 and name3"

您可以修改最后一个连接器传递一个单词选项:

irb(main):003:0> names.to_sentence(last_word_connector: ', ')
=> "name1, name2, name3"

查看documentation

【讨论】:

    猜你喜欢
    • 2014-08-24
    • 2019-12-08
    • 1970-01-01
    • 1970-01-01
    • 2015-05-17
    • 1970-01-01
    • 1970-01-01
    • 2018-11-26
    • 2016-05-11
    相关资源
    最近更新 更多