2011-12-16 88 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恕我直言,是口味的问题。