Rails 中有条件地更改 link_to 位置的干净方法

发布于 2024-10-16 17:35:06 字数 384 浏览 5 评论 0原文

所以我有这个链接

 <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 %>

SO i have this link_to

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

but if its an admin i want go to a different location like below...I know i can do this but is there a cleaner way

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

流年已逝 2024-10-23 17:35:06

更干净一点

<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>

A little cleaner

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

or where ever you computed admin_user, presumably in the controller, create an additional variable containing the appropriate path and use it in the view instead. e.g.

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

# in view
<li><%= link_to "Home", home_path %></li>
伴随着你 2024-10-23 17:35:06

更灵活的方式,例如,如果您还想更改链接的名称:

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

http:// /apidock.com/rails/ActionView/Helpers/UrlHelper/link_to_if

A more flexible way, e.g. if you want to change the name of the link also:

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

http://apidock.com/rails/ActionView/Helpers/UrlHelper/link_to_if

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文