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

Rails执行CRUD操作返回302状态码,跳转show页而非index页问题

问题产生原因

你在redirect_to中错误地给命名路由助手candidates_path加了单引号,导致Rails没有调用该路由方法生成正确的/candidates路径,而是将candidates_path当做了相对路径字符串处理。
结合你的路由规则,GET /candidates/:id对应show动作,当请求路径为/candidates/candidates_path时,Rails会将路径段candidates_path识别为:id参数,匹配到show动作,所以最终跳转至show页面而非index页面。

修复方案

把控制器中create、update、destroy方法里的redirect_to 'candidates_path'改为redirect_to candidates_path(去掉外层单引号)即可:

# 修正后的示例(以create方法为例)
def create
  @candidate = Candidate.new(filtered)
  if @candidate.save
    flash[:notice] = "Successfully Added!"
    redirect_to candidates_path # 去掉引号,直接调用路由方法
  else
    render :new
  end
end

其余update、destroy方法中的对应语句做相同修改即可。

额外说明

如果要直接使用字符串路径跳转,需要写以/开头的绝对路径:redirect_to '/candidates',但更推荐使用Rails提供的命名路由助手方法,无需硬编码路径,后续调整路由规则时不需要逐一修改业务代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 20:54:07