2011-12-16 86 views
0
<% if user_signed_in? %> 
    <li><%= link_to('Logout', destroy_user_session_path, :method => :delete) %> </li> 
    <li><%= link_to('Edit registration', edit_user_registration_path) %> </li> 
    <li><%= link_to 'Add Post', :controller=>'/posts', :action=>'new' %></li> 
<% else %> 
    <li><%= link_to('Login', new_user_session_path) %></li> 
<% end %> 

是否可以在一個塊內寫入這些代碼行? 任何人都可以發佈快捷方式嗎?太多<%>,<%end%>重構我的代碼,我怎樣才能在一個塊中寫這些行?

+1

iam困惑你爲什麼要添加兩個if語句? – djd 2011-12-16 08:35:42

+0

已編輯,現在更短,更少<% .. %> – shibly 2011-12-16 09:09:17

回答

6

這樣做有什麼問題嗎?

<% if user_signed_in? %> 
    <li><%= link_to('Logout', destroy_user_session_path, :method => :delete) %>  </li> 
    <li><%= link_to('Edit registration', edit_user_registration_path) %> </li> 
    <li><%= link_to 'Add Post', :controller=>'/posts', :action=>'new' %></li> 
<% else %> 
    <li><%= link_to('Login', new_user_session_path)  %></li> 
<% end %> 
3

你的代碼對ERB來說是很正常的。如果你想減少一些額外的格式化,您可以使用HAML

- if user_signed_in? 
    %li= link_to('Logout', destroy_user_session_path, :method => :delete) 
    %li= link_to('Edit registration', edit_user_registration_path) 
    %li= link_to 'Add Post', :controller=>'/posts', :action=>'new' 
- else 
    %li= link_to('Login', new_user_session_path) 

使用或不HAML恕我直言,是口味的問題。