2009-09-15 82 views
0

我在部分視圖文件_status.html.erb中有以下代碼。爲什麼Ruby on Rails不呈現一些文本?

<%= 
    if session[:user].nil? 
     "welcome new user" 
     link_to('Sign in', login_path) 
    else 
     render (:text => "user name:") 
     h(session[:user].name) 
    end 
%> 

,我看到,雖然唯一是session[:user].name值。有什麼建議麼?

回答

3

你真的不需要調用渲染,除非它位於另一部分。

在ERB:

<% if session[:user].nil? -%> 
    welcome new user 
    <%= link_to('Sign in', login_path) %> 
<% else -%> 
    user name 
    <%= h(session[:user].name) %> 
<% end -%> 

或者在Haml的:

- if session[:user].nil? 
    welcome new user 
    = link_to('Sign in', login_path) 
- else 
    user name 
    = h(session[:user].name) 
+0

這是偉大的,謝謝。直到現在我還沒有注意到 - %>部分。謝謝! – cbrulak 2009-09-15 21:58:25

+0

這是<%= <%重要。 - %>可以簡單地抑制否則會發送到輸出的空白行。 – jdl 2009-09-15 22:05:03

相關問題