Rails在html.erb文件中查看助手并格式化很长的行

时间:2017-04-20 17:33:16

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

我的一些html.erb文件非常长。由于多种属性,有时还有条件。

例如:

<div class="comment-container">
  <div class="comments">
    <div class="user-info"></div>
    <span class="toggle-comments pull-right comment-activity <%= 'hidden' unless @item.comment_threads.size != @item.root_comments.size %>" data-id="<% item.id %>" data-commentid="<% comment.id %>" data-userid="<% user.id %>">
        <i class="fa fa-comment-o fa-lg"></i>
    </span>    
  </div>
</div>

格式化这种格式的最佳方法是什么?我应该使用content_tag吗?请保持原样?

1 个答案:

答案 0 :(得分:1)

您可以使用<%= 'hidden' unless @item.comment_threads.size != @item.root_comments.size %>并输入辅助方法:

def hidden(item)
  'hidden' unless item.comment_threads.size != item.root_comments.size
end

然后在您的视图中,您只需调用您的方法:

<div class="comment-container">
  <div class="comments">
    <div class="user-info"></div>
    <span class="toggle-comments pull-right comment-activity <%= hidden(@item) %>" data-id="<%= item.id %>" data-commentid="<%= comment.id %>" data-userid="<%= user.id %>">
      <i class="fa fa-comment-o fa-lg"></i>
    </span>    
  </div>
</div>

你不会摆脱整条线,但会让它更清洁。

如果你仍然不喜欢那条长行,你可以将属性划分为不同的行,如下所示:

<div class="comment-container">
  <div class="comments">
    <div class="user-info"></div>
    <span
      class="toggle-comments pull-right comment-activity <%= hidden(@item) %>"
      data-id="<%= item.id %>"
      data-commentid="<%= comment.id %>"
      data-userid="<%= user.id %>">
      <i class="fa fa-comment-o fa-lg"></i>
    </span>    
  </div>
</div>

我更喜欢打破新行中的属性,但不是每个人都喜欢它,所以请使用您更熟悉的属性。