2009-06-28 213 views
1

我正在爲部分視圖編寫一些Rails代碼,並且我希望它只顯示註釋字段,如果有人已經登錄到網站在這裏。什麼是在軌道中的視圖中的html元素添加類屬性的最簡潔的方法

如果網頁是由人誰是不是網站的會員還看,shared/comment_not_logged_in片段應該傳入。

不過,我完全難住了,爲什麼我不能運行相同的檢查,以決定是否頁應該class屬性「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_user返回IRB字符串,並在控制檯調試器。

我在這裏做錯了什麼?

+0

(拍拍自己的額頭) D'oh! 非常明顯! – 2009-06-28 20:10:34

回答

2

您忘記了=。通過<%=更換<%,使您獲得:

<%= "missing_your_voice" if not current_user %> 

記住<% ... %>將只運行Ruby代碼,但不顯示任何內容。使用<%= ... %>將運行代碼顯示錶達式的結果。

0

正如molf已經指出的那樣,您的視圖中缺少一個=。
它應該是<%=

除此之外,請確保通過在您的控制器中調用helper_method使您的控制器方法可用於您的視圖。

如果需要,請查看文檔。

相關問題