You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何借助认证逻辑为Ruby on Rails&Devise实现两种link_to跳转目标

可以把路径判断逻辑单独提取,只保留一份link_to代码块来消除重复:

<% target_path = user_signed_in? ? alerts_path : root_path %>
<%= link_to target_path, class: "d-flex flex-row navbar-brand", input_html: {data: {bs_toggle: "offcanvas", bs_target: "#offcanvas"}} do %>
  <%= cl_image_tag("ouicity_logo_j5rhro") %>
  <h2 id="logo" class="ms-3">ouicity</h2>
<% end %>

如果追求更紧凑的写法,也可以直接把判断逻辑嵌入link_to的路径参数里:

<%= link_to user_signed_in? ? alerts_path : root_path, class: "d-flex flex-row navbar-brand", input_html: {data: {bs_toggle: "offcanvas", bs_target: "#offcanvas"}} do %>
  <%= cl_image_tag("ouicity_logo_j5rhro") %>
  <h2 id="logo" class="ms-3">ouicity</h2>
<% end %>

第一种写法把路径变量单独声明,可读性更强;第二种写法更简洁,适合这种简单的二元判断场景,两种方案都能实现你要的登录前后跳转不同路径的需求。

内容的提问来源于stack exchange,提问作者AmandaBP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 16:25:27