1

部分ビュー用の Rails コードを書いていますが、誰かが既にここのサイトにログオンしている場合にのみコメント フィールドを表示したいと考えています。

サイトのメンバーではない人がページを表示した場合、shared/comment_not_logged_inフラグメントを渡す必要があります。

ただし、同じチェックを実行して、ページがクラス属性「missing_your_voice」をここで囲んでいる div 要素に追加する必要があるかどうかを判断できない理由について、私は完全に困惑しています。

   <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>  

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

ここで何が間違っていますか?

4

2 に答える 2

2

を忘れました=。に置き換える<%<%=、次のようになります。

<%= "missing_your_voice" if not current_user %>

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

于 2009-06-28T19:48:31.747 に答える
0

molf がすでに指摘したように、ビューに = がありません。
である必要があります<%=

それ以外に、コントローラーでhelper_methodを呼び出して、ビューでコントローラー メソッドを使用できるようにしてください。

必要に応じてドキュメントを参照してください。

于 2009-06-28T20:01:10.723 に答える