2009-06-28 10 views
1

一部のRailsコードを部分的に表示していますが、誰かが既にログオンしている場合にのみコメントフィールドを表示します。サイトはこちらページはまだ、サイトのメンバーではない誰かに見ている場合はrailsのビューでhtml要素にクラス属性を追加する最もクリーンな方法はありますか

shared/comment_not_logged_inフラグメントが渡されなければならない。しかし

、私は完全に私が実行できない理由として困惑しますページはここで囲むdiv要素にclass属性「missing_your_voice」を追加するかどうかを決定するために、同じチェック:

<li class="user_submission_form bubble comment_form <% "missing_your_voice" if not current_user %>"> 

     <% if current_user %>  
     <%= image_tag(current_user.avatar(:comment), :class => "profile_pic") %> 
     <% form_for [parent, Comment.new] do |f| %> 
     <%= render "comments/form", :f => f %> 
     <% end %> 
     <% else %> 
     <%= render :partial => 'shared/comment_not_logged_in' %> 
     <% end %> 

    </li> 

IRBで、また、コンソールデバッガで文字列を返します"missing_your_voice" if not current_user同じイディオム、。

私はここで間違っていますか?

+0

(スラップ自身の額) D'oh! だから明らかです! –

答えて

2

=を忘れました。あなたが得るように、<%=によって<%を交換してください:

<%= "missing_your_voice" if not current_user %> 

<% ... %>だけで何も表示されRubyのコードを実行しませんが、ことを覚えておいてください。 <%= ... %>を使用すると、コードが実行され、式の結果が表示されます。

0

すでに指摘されているように、あなたの見解には欠けているものがあります。
<%=である必要があります。

それ以外の場合は、コントローラでhelper_methodを呼び出して、コントローラのメソッドを表示できるようにしてください。

必要に応じてドキュメントをご覧ください。

関連する問題