2017-04-20 52 views
1

我的一些html.erb文件非常长。由于多个属性和有时条件。Rails视图助手并在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

您可以<%= '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> 

我喜欢打破属性在新的生产线,但不是每个人都喜欢它,所以使用你更舒适的那个。