【问题标题】:Splitting string into linked words将字符串拆分为链接的单词
【发布时间】:2013-12-11 09:09:22
【问题描述】:

所以我有标准的脚手架循环,可以打印一串会议的标签。

<% @meets.each do |meet| %>
      <p class="MeetTags"><%= meet.tags %></p>
   <% end %>

如何分隔例如 3 个单词的字符串,以便每个单词都在单独的框中。 谢谢!

【问题讨论】:

  • 如果您有一个有效的答案,您应该接受它(点击最佳答案旁边的复选标记)

标签: ruby-on-rails ruby scaffold


【解决方案1】:

你可以做一些像这样的思考

<% @meets.each do |meet| %>
  <% meet_tags = meet.tags.split(' ') %>
  <% meet_tags.each do |meet_tag|%>
   <p class="MeetTags"><%= meet_tag %></p>
  <%end%>
<% end %>

【讨论】:

    【解决方案2】:

    您的问题是 meet.tags 是一个数组,所以您告诉 rails 显示该数组:这就是您看到方括号的原因。

    如果你想将标签分成 3 个一组,然后用空格分隔,你可以这样做:

    <% @meets.each do |meet| %>
      <% tag_arr = meet.tags.split(' ') %>
      <% tag_arr.in_groups_of_3.each do |tag_subarr|%>
       <p class="MeetTags"><%= tag_subarr.reject(&:blank?).join(" ") %></p>
      <%end%>
    <% end %>
    

    我正在使用.reject(&amp;:blank?),因为in_groups_of 方法将用nil 填充最后一个子数组,这会弄乱您的格式,并且如果您尝试对tag_subarr 的成员元素执行任何操作,可能会导致其他问题。

    【讨论】:

      【解决方案3】:

      假设你的标签是用空格连接的:

      <% @meets.each do |meet| %>
        <% meet.tags.split(' ').each do |word| %>
          <p class="MeetTags"><%= word %></p>
        <% end %>
      <% end %>
      

      【讨论】:

      • 我怎样才能得到吃咖啡午餐而不是[“吃咖啡午餐”]
      • @DanieliusVisockas 在split'条件'中将逗号更改为空格,就像我在编辑答案中所做的那样。
      • 我想去掉 [ 和 " 符号。如果我将空格改为逗号,我会得到 ["eat", "coffee", "lunch"]
      • @DanieliusVisockas 你的意思是,你在 HTML 中得到这些?
      • 是的,我已经从我的网站上粘贴了它。
      猜你喜欢
      • 2011-06-12
      • 2014-06-09
      • 1970-01-01
      • 2022-01-18
      • 2011-10-23
      • 2011-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多