2016-12-28 13 views
-1

このメソッド内にif条件を与えることができません。このヘルパーメソッドの中に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

if条件はどうすればよいですか? – 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 

しかし、より良いが、部分的に、このHTMLを移動し、あなたが必要な場合は、ヘルパーからそれを呼び出します。

def published_comment(comment) 
    render 'published_comment', locals: { comment: comment } 
end 
関連する問題