2011-02-10 66 views
3

,所以我有这样的link_to干净的方式有条件地改变的link_to位置

<li><%= link_to "Home", root_path %></li> 

,但如果它的管理员我希望去一个不同的位置,像下面......我知道我能做到这一点,但有一个更清洁的方式

<% if admin_user %> 
<li><%= link_to "Home", admin_path(current_user) %></li> 
<% else %> 
<li><%= link_to "Home", root_path %></li> 
<% end %> 

回答

3

干净了一点

<li><%= link_to "Home", admin_user ? admin_path(current_user) : root_path %></li> 

或任何你计算admin_user,想必控制器创建一个包含适当路径的附加变量,然后在视图中使用它。例如

# in controller 
home_path = admin_user ? admin_path(current_user) : root_path 

# in view 
<li><%= link_to "Home", home_path %></li>