【问题标题】:How to list(<li>) data from a column in a table having newlines(\r +) inside ruby tag?如何列出(<li>)表中包含 ruby​​ 标记内的换行符(\r +)的列中的数据?
【发布时间】:2017-11-23 11:48:58
【问题描述】:

我的代码是

@tariff.each do |tar|  
  <li><%= tar.lt_ninety%></li>
<%end%>

这个lt_ninety 有一个值(你好),在表中的每个单词之间包含新行(\r +)

我在 Stack Overflow 中找到了一种方法,但无法帮助我解决。

&lt;li&gt;&lt;%= h(tar.lt_ninety).gsub(/\r/, '&lt;br/&gt;').html_safe%&gt;&lt;/li&gt;

输出是这样的

 <li> hey</li>
hello

我无法用&lt;li&gt; 打招呼

【问题讨论】:

  • 你能发布lt_ninety的值吗?
  • 嘿\r 你好是 lt_ninety 的值

标签: ruby ruby-on-rails-4 ruby-on-rails-3.2


【解决方案1】:

拆分tar.lt_ninety 并循环它

<% @tariff.each do |tar| %> 
  <% tar.lt_ninety.split(/\r/) do |ln|%>
    <li><%= h ln %></li>
  <% end %>
<%end%>

【讨论】:

  • 感谢您的帮助,但它对我的代码不起作用,
  • 没有打印任何内容!
【解决方案2】:

在为每一行生成&lt;li&gt; 之前,只需将tar.lt_ninety 拆分为单独的lines

<% @tariff.each do |tar| %>
  <% tar.lt_ninety.lines.each do |line| %>
    <li><%= line %></li>
  <% end %>
<%end%>

【讨论】:

  • 也试过了。我得到了两行的值,这很好。但我无法在 li 标签中找到它
  • 能否将我的回答生成的 HTML 结构与您的数据分享一下。

  • 你好

  • 但我实际上想要它

  • 你好
  • 李>
  • 对不起,我误解了您的要求。请查看我的更新答案。
  • 【解决方案3】:

    万岁!!我的同事给了我一个很酷的解决方案

    <ul><% (tar.lt_ninety).split(/\r\n/).each do |val| %>
    

    &lt;li&gt;&lt;%= val %&gt;&lt;/li&gt;

    <% end%></ul>
    

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签