2016-12-28 52 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