2016-12-28 70 views
-1

我不能給這個方法裏面的if條件。如何在此輔助方法中添加條件?

def published_comment 
      "<li> 
       <div id='comment_#{@comment.anchor}' class='comment #{@comment.state}' data-comment-id='#{@comment.to_param}'> 
       <div> 
        #{ avatar } 
        #{ userbar } 
        <div class='cbody'>#{ @comment.content }</div> 
        #{ reply } 

        #{ if controller.try(:current_user).try(:admin?) } 
        #{ approved_comment } 
        #{ end } 

       </div> 
       </div> 
       <div class='form_holder'></div> 
       #{ children } 
      </li>" 
      end 
+0

你應該做什麼? – FlyingFoX

回答

0

您需要單獨建立一個HTML字符串:

def published_comment 
    html = "<li> 
    <div id='comment_#{@comment.anchor}' class='comment #{@comment.state}' data-comment-id='#{@comment.to_param}'> 
     <div> 
     #{ avatar } 
     #{ userbar } 
     <div class='cbody'>#{ @comment.content }</div> 
     #{ reply } 
    " 

    html << approved_comment if controller.try(:current_user).try(:admin?) 


    html << "</div> 
    </div> 
    <div class='form_holder'></div> 
    #{ children } 
    </li>" 

    html 
end 

不過還好這個網站移動到一個局部的,如果你需要從一個幫手調用它。

def published_comment(comment) 
    render 'published_comment', locals: { comment: comment } 
end