所以我有这个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 %>
最佳答案
稍微干净一点
<li><%= link_to "Home", admin_user ? admin_path(current_user) : root_path %></li>
或者在您计算 admin_user 的地方,大概是在 Controller 中,创建一个包含适当路径的附加变量,然后在 View 中使用它。例如
# in controller
home_path = admin_user ? admin_path(current_user) : root_path
# in view
<li><%= link_to "Home", home_path %></li>
关于ruby-on-rails - Rails 中有条件地更改 link_to 位置的简洁方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4952685/