首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果我使用redirect_to,我会在浏览器上被重定向太多

如果我使用redirect_to,我会在浏览器上被重定向太多
EN

Stack Overflow用户
提问于 2020-04-13 22:44:33
回答 4查看 54关注 0票数 0

我的目标是在true或show new path的情况下将用户重定向到index path

代码语言:javascript
运行
复制
class PostsController < ApplicationController
  before_action :check_condition, only: [:index, :new]

  def check_condition
     if true
        redirect_to posts_path
     else
        redirect_to new_post_path
     end
  end 

  def index
     @posts = Post.find()
  end

  def new
     @new_post = Post.new(title: "test")
  end
end

当我转到索引路径或新路径时,浏览器上的错误重定向次数过多

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2020-04-14 13:27:10

此时,无论您是否已经在post_path上,只要if-condition为true,就可以重定向到post_path

您只需要重定向,除非您已经在指向预期方法的路径上。这可以通过检查当前的action_name来完成

代码语言:javascript
运行
复制
def check_condition
  if true
    redirect_to posts_path    unless action_name == 'index'
  else
    redirect_to new_post_path unless action_name == 'new'
  end
end 
票数 2
EN

Stack Overflow用户

发布于 2020-04-14 07:57:05

你正在运行一个无限循环的重定向。

您正在添加check_condition作为before_action。这意味着,每次重定向到indexnew页面时,check_condition都会再次运行,而不会到达indexnew方法并重新进行重定向,依此类推。

我的建议是在viewhelper方法中编写条件检查器(首先确定链接的路径),而不是在controller中。

票数 0
EN

Stack Overflow用户

发布于 2020-04-14 14:23:21

试试这个。重定向后需要返回。

代码语言:javascript
运行
复制
def check_condition
  if true
    redirect_to posts_path && return
  else
    redirect_to new_post_path && return
  end
end 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61190364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档