首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如果我在不同的子目录中有多个控制器,如何使用redirect_to?

在Ruby on Rails中,如果您在不同的子目录中有多个控制器,并似乎需要使用redirect_to,您可以考虑以下方法:

  1. 使用命名路由:在config/routes.rb文件中,为您的控制器和动作定义命名路由。例如:
代码语言:ruby
复制
get '/subdirectory1/controller1/action1', to: 'subdirectory1/controller1#action1', as: 'subdir1_controller1_action1'
get '/subdirectory2/controller2/action2', to: 'subdirectory2/controller2#action2', as: 'subdir2_controller2_action2'

然后,在您的控制器中,您可以使用redirect_to方法并指定命名路由:

代码语言:ruby
复制
redirect_to subdir1_controller1_action1_path
  1. 使用url_for方法:url_for方法可以生成一个特定控制器和动作的URL。例如:
代码语言:ruby
复制
redirect_to url_for(controller: 'subdirectory1/controller1', action: 'action1')
  1. 使用polymorphic_path方法:polymorphic_path方法可以根据您提供的模型生成URL。例如:
代码语言:ruby
复制
redirect_to polymorphic_path(Subdirectory1::Controller1, action: 'action1')

请注意,这些方法不依赖于任何特定的云计算品牌商,而是使用Ruby on Rails框架的内置功能。

相关搜索:如果我在存储过程中有多个select语句,如何使用SqlDataReader我可以在机器人中有多个控制器吗?如果是,那么我如何处理端点?如果类在java中有共同的字段,我如何使用它们的组合?如果我在输入字段中有一个静态值,我如何将它传递给控制器?如果我在输入图像上有不同的input_shape,我如何使用keras如果redis中有使用Ruby on Rails的eixist,我如何更新HKEYS字段如果数据库中有3个不同的字段名称,我如何搜索全名?如果我有两个表,并使用不同的控制器在不同的视图中显示数据,如何配置module.php如果我的html文件中有多个select2,如何更改特定select2的宽度?如果我在PL/SQL中有文件的路径,如何获得文件夹数?在Julia中,如果一些列是不同的,我如何组合多个数据帧?如何使用相同的UIButton在不同的时间执行多个不同的动画?如果我们在单个jinja模板中有多个宏。如何在python中呈现特定的宏如果我在Java中有一个简单的Clojure print语句作为字符串,我如何使用Clojure执行它?在Java8中,如果没有更多的子目录,如何使用NIO列出目录?在我的工作目录中有glfw -3.2.1,如何使用makefile进行编译如何使用jekyll在_posts order by time子目录中列出我的帖子如何使用python在多个不同的行中查找模式如果文本文件的一列中有多个项目,那么如何使用python在SQL中导入它?keras中有什么高级的优化方法吗?如果没有,我该如何使用它们呢?
相关搜索:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Rails布局和视图渲染

创建响应 从控制器角度,创建HTTP响应有三种方法: 调用 render 方法 调用 redirect_to 方法 调用 head 方法,向浏览器发送只含HTTP首部响应 一个控制器...index 动作末尾并没有指定要渲染视图,Rails会自动控制器视图文件夹中寻找 action_name.html.erb 模板,然后渲染。...指定控制器布局 控制器使用 layout 声明,可以覆盖默认使用布局约定: class ProductsController < ApplicationController layout...(fallback_location: root_path) 默认 redirect_to 方法把HTTP状态码设为302,如果想要设定其他状态码,可以使用 :status 选项: redirect_to... 如果不同区域需要不同内容(sidebar、footer等),就可以使用 content_for 方法。

3.3K30

挖洞经验 | 利用开放重定向漏洞劫持GitHub Gist账户

近期,针对GitHub做了一些安全测试,特别对其不同CSRF token进行了绕过测试,在此过程中,顺带研究了urls生成各种方法函数,希望从中发现用来创建token相关方法,最后发现了其中一个开放重定向漏洞...漏洞收获了$10,000奖励。 漏洞发现 测试urls生成方法中,有一个名为url_for方法,它通常被用来生成一些与控制器(controller)相关链接。...(:anchor) path end GitHub中有多个地方用类似以下代码来创建相应链接: <a class="link" href="<%= url_for(request.query_parameters.merge...一番分析之后,<em>我</em>意识到这个开放重定向漏洞威力还是大<em>的</em>,它会影响几乎所有的Github<em>控制器</em>路径。...由于GitHub 和 Gist<em>使用</em><em>的</em>会话token<em>不同</em>,因此利用该漏洞不能对受害者<em>的</em>github.com服务造成影响,仅会对Gist服务形成访问控制威胁。

68720
  • 赏金$10000GitHub漏洞

    如果使用script_name就会得到一些有趣结果,script_name不需要以斜杠开头,当与redirect_to一起使用时,可以被附加到host中: curl -i 'http://local.dev...回头再看这个重定向bug,发现它其实很厉害,因为它在应用控制器中很早就被影响,这意味着将影响几乎所有的路径(所有的控制器都会扩展应用控制器)。...GitHub自带一些内置OAuth应用,其中一个就是针对Gist。GitHub Gist与GitHub是同一个rails应用,只是不同主机名后面,拥有有不同路径。...一个新建浏览器隐私页面,去https://gist.github.com/auth/github/callback,抓取一个有效状态参数,然后使用这份browser_session_id、code...由于GitHub和Gist使用不同会话令牌,虽然它不允许访问github.com,但允许完全访问Gist。 最终因为这个发现,获得了$10000赏金。

    67410

    Gin框架入门系列-路由与控制器及静态网站

    1.概述 路由是一个过程,指的是一个http请求,如何找到对应处理器函数(也可以叫控制器函数),Gin框架路由是基于httprouter包实现控制器函数主要负责执行http请求-响应任务。...3.分组路由 在做api开发时候,如果要支持多个api版本,我们可以通过分组路由来实现api版本处理。...html模板处理 Gin 框架默认封装了golang内置html/template包用于处理html模版,如果你开发是接口服务,不提供html页面可以跳过本章内容。...一般项目中,因为有多个模块模版文件,我们都会以多个子目录方式来组织模版文件,上面的例子只能加载某个目录下面的模版文件,无法加载子目录模版文件。...如果项目中包含js、css、jpg之类静态文件,怎么访问访问静态文件?

    26730

    Gin框架入门系列-路由与控制器及静态网站

    1.概述 路由是一个过程,指的是一个http请求,如何找到对应处理器函数(也可以叫控制器函数),Gin框架路由是基于httprouter包实现控制器函数主要负责执行http请求-响应任务。...3.分组路由 在做api开发时候,如果要支持多个api版本,我们可以通过分组路由来实现api版本处理。...html模板处理 Gin 框架默认封装了golang内置html/template包用于处理html模版,如果你开发是接口服务,不提供html页面可以跳过本章内容。...一般项目中,因为有多个模块模版文件,我们都会以多个子目录方式来组织模版文件,上面的例子只能加载某个目录下面的模版文件,无法加载子目录模版文件。...如果项目中包含js、css、jpg之类静态文件,怎么访问访问静态文件?

    22640

    【基本功】 前端安全系列之一:如何防止XSS攻击?

    不同情况下要采用不同转义规则。...Encode.forHtml(UNTRUSTED) : "/404" %>'> link 可见,HTML 编码是十分复杂不同上下文里要使用相应转义规则。...UNTRUSTED") // location 调用恶意代码 location.href = 'UNTRUSTED' // eval() 中调用恶意代码 eval("UNTRUSTED") 如果项目中有用到这些的话...XSS检测 上述经历让小明收获颇丰,他也学会了如何去预防和修复 XSS 漏洞,日常开发中也具备了相关安全意识。但对于已经上线代码,如何去检测其中有没有 XSS 漏洞呢?...避免拼接 HTML 前端采用拼接 HTML 方法比较危险,如果框架允许,使用 createElement、setAttribute 之类方法实现。

    5.5K12

    Yii 框架应用(Applications)操作实例详解

    由于应用主体配置比较复杂,一般保存在多个类似如上web.php 配置文件 当中。 应用主体属性 ¶ 应用主体配置文件中有许多重要属性要配置,这些属性指定应用主体运行环境。...比如,应用主体需要知道如何加载 控制器 , 临时文件保存到哪儿等等。 以下我们简述这些属性。 必要属性 一个应用中,至少要配置2个属性: id 和 basePath。...根目录包含应用系统所有受保护源代码。 根目录下可以看到对应MVC设计模式models, views, controllers等子目录。...components 这是最重要属性,它允许你注册多个在其他地方使用 应用组件....layoutPath 该属性指定查找布局文件路径,默认值为 视图路径 下 layouts 子目录如果 视图路径 使用默认值, 默认布局路径别名为@app/views/layouts。

    1.3K10

    (已解决)登录火狐浏览器账号后没有同步数据--博主奇妙寻号之旅

    怎么办,完蛋了,这时候邮件引起注意!!!!! 新电脑上装了火狐浏览器,想登陆账号来同步书签,发现登录自己账号竟然要重新注册。...两台电脑火狐浏览器版本相同,都是从火狐官网下这个版本 查了半天才搞明白怎么回事,原来是火狐浏览器中国版本一个坑: 火狐账号登录 和 火狐通行证 是两个完全不同账号体系,数据不互通。。...差别在于使用网络是境内还是境外。...区别具体长啥样,安装好火狐浏览器后,点击右上角登陆Firefox,你就明白: 境外出现是这个登陆界面 境内出现是这个登陆界面 问题原因是使用火狐通行证注册账号,火狐账号登录里面是不存在...For example, 国内使用火狐通行证注册帐号,在国外安装火狐浏览器以后,默认通过火狐账号登录,因此无法登录自己账号。

    4K30

    多说 提速:js内页页脚加载、静态文件CDN

    最近为 Jeff阳台 折腾着插件提速工作。Jeff阳台使用了多说评论系统,但多说加载速度实在是不敢恭维(稳定性也一样),于是又邪恶地想到为多说提速一番,下面就将Jeff成果写出来分享分享。...这一点多说插件并没有选项,而我们知道,评论一般文章中(内页),如果在首页也加载,并不是一个明智做法。要将多说核心脚本embed.js 只在内页加载,必须要对插件php 文件动手。...在此之前,先说说对于embed.xxx.css ,因为该文件是embed.js(http://static.duoshuo.com/embed.js) 那里调用,调用代码embed.js 是这么一行...,好吧,懒得分析这个与上面代码关系了,下面只说修改方法:下载该embed.js 文件,该下载文件搜索 static.duoshuo.com (仅有一处),修改为七牛地址(如Jeff 是 dstatic.qiniudn.com...以Jeff为例,七牛地址就是 dstatic.qiniudn.com/embed2.js 。

    1.8K100

    注销和页面跳转

    否则用户在你网站东跳转西跳转好不容易找到了想看内容,结果他已登录给他跳转回了首页,这会使用户非常愤怒(在有些网站就遇到过)。接下来我们看看如何让登录、注册和注销后跳转回用户之前访问页面。...当然这种情况是极为罕见,很少有用户会记住你网站 URL 地址,但如果真有这样用户,我们就把他跳转回首页吧,因为没有任何办法记录他之前访问页面。...如果用户通过点击登录或者注销按钮登录和注销的话,登录或者注销成功后就会被带回登录或者注销前页面,否则将他带回网站首页。 注册后返回当前页面 类似的,我们也希望用户注册后返回注册前页面。...,展示一个空注册表单给用户 form = RegisterForm() # 渲染模板 # 如果用户正在访问注册页面,则渲染是一个空注册表单 # 如果用户通过表单提交注册信息...,但是数据验证不合法,则渲染是一个带有错误信息表单 # 将记录用户注册前页面的 redirect_to 传给模板,以维持 next 参数整个注册流程中传递 return render

    4.5K90

    DOS命令大全–详解

    例:(1)C盘根目录下创建名为FOX子目录;(2)FOX子目录下再创建USER子目录。...,由于某些原因也包括自己所收集资料过少这里也没有向大家详细介绍,请大家见谅,如果在看了这篇文章朋友当中有知道得比我更多,以及其他使用技巧也希望您能告诉,并在此先谢过。...,由于某些原因也包括自己所收集资料过少这里也没有向大家详细介绍,请大家见谅,如果在看了这篇文章朋友当中有知道得比我更多,以及其他使用技巧也希望您能告诉,并在此先谢过。...27)prompt 说明:转换提示,多个文件传输时候,ftp提示可以有选择检索或保存文件,如果关闭提示,则mget和mput命令传输所有文件,默认情况下是打开. 28)put 说明:使用当前文件传输类型将本地文件复制到远程计算机中...如果在每个Telnet部分使用不同"escape"代表符,便可以通过键入适当符号,来选择其中一个命令模式,这也可以用于其他应用中(像终端仿真)。 Quit: 用它可顺利地推出Telnet程序。

    1.8K20

    CI基础知识笔记

    ’] = ‘d’; //一些控制器controllers目录下子目录当中需要使用 2.获取交互数据$this->input->post(‘title’);等同于$_POST[‘title’] 3.使用...->load->helper(‘name’);载入那么视图和控制器当中都可以使用 可以是载入多个辅助函数$this->load->helper(array(‘help1′,’help2′,’help3...如果名称由多个词组成,词之间要用下划线分隔,不要使用骆驼命名法。...类中所有其他方法名称应该完全小写并且名称能明确指明这个函数用途,最好用动词开头 2.如果你要使用某个子文件夹下功能,就要保证 URI 第一个片段是用于描述这个文件夹 3.如果要在你任意控制器使用构造函数的话...,只需要在第一个视图传入数据就可以 9.辅助函数中函数名最好做好命名规范,如果同时加载多个辅助函数文件,且其中有名称相同函数,会导致 CI 出现空白页问题(也就是 PHP 语法错误)。

    1.3K30

    【Laravel框架】对于Laravel框架架构研究以及视图方法和内置会话项目里运用

    架构 首先,应该了解larravel框架架构模式(设计核心,larravel架构是使用服务组件化开发模式开发,larravelframework由不同服务组件组成) larravel中多个服务提供商构成了...类->服务->组件 Larravel使用基于组件开发模式,具有多个类->服务->组件,多个类构成服务,多个服务构成组件。 多个组件提供不同服务,然后多个服务构成我们项目。...本例中,我们传递一个名称变量,该变量通过使用Blade语法显示视图中。 当然,视图也可以存储resources/views子目录中。嵌套视图可以用“.”符号引用。...由于它是中间件,它将在服务容器注册所有服务后执行,而控制器构造函数容器注册服务时执行,因此此时会话尚未启动。如何获取数据?...此方法中存储会话数据仅在后续HTTP请求中有效,将被删除. 如果需要在更多请求中保留一次性数据,可以使用刷新方法将所有一次性数据保留到下一个请求中。

    3.5K10

    PHP-ThinkPHP框架学习

    和Smarty不同,ThinkPHP渲染模板时候如果不指定模板,则会采用系统默认定位规则,其定义规范是 Tpl/模块名/操作名.html,所以,Index模块index操作默认模板文件位于项目目录下面的...> 默认值 {$user.nickname|default="这家伙很懒,什么也没留下"} 控制器使用 Action参数绑定原理是把URL中参数(不包括分组、模块和操作名)和控制器操作方法中参数...是否需要对图片文件进行缩略图处理,默认为false thumbMaxWidth 缩略图最大宽度,多个使用逗号分隔 thumbMaxHeight 缩略图最大高度,多个使用逗号分隔 thumbPrefix...指定缩略图扩展名 thumbRemoveOrigin 生成缩略图后是否删除原图 autoSub 是否使用子目录保存上传文件 subType 子目录创建方式,默认为hash,可以设置为hash、date...上传错误 $this->error($upload->getErrorMsg()); } } } 多文件 上传类默认就支持多文件上传,只需要修改表单页面: 如果需要使用多个文件上传

    6.9K00

    通过匿名函数和验证规则类自定义 Laravel 字段验证规则

    通过匿名函数实现自定义规则 我们先演示下如何控制器方法中调用 $this->validate() 时自定义验证规则,以 title 字段为例,除了系统提供字段验证规则之外,有时候我们还会禁止用户输入包含敏感词字段...,我们国家,这也是司空见惯事情,那要如何实现这个 Laravel 办不到事情呢,通过自定义验证规则: $this->validate($request, [ 'title' => [...如果检查到输入标题包含敏感词,则认为验证不通过,返回错误信息(这里主要目的是演示如何自定义验证规则,实际环境中不要这样校验敏感词哈,效率太低)。...如果使用是 Validator::make 进行请求字段验证的话,实现方式完全一样,不再赘述,即使是表单请求类 SubmitFormRequest 中,也是一样,把代码迁移过去就好了: public..., '敏感词') === false; } 如果输入值中包含敏感词,则认为验证失败,然后 message 方法中修改验证失败错误消息,由于我们这个规则类是通用,所以将字段名通过 :attribute

    2.8K20

    SpringBoot-搭建Mybatis项目

    本文介绍了如何在IntelliJ IDEA中使用SpringBoot和Mybatis构建Java Web应用程序。...通过本文学习,读者将了解如何使用IntelliJ IDEA快速搭建一个基于SpringBoot和MybatisJava Web应用程序,提高开发效率。...选择 Java8,这是目前 Java 三个长期维护版本里,维护计划最长,至少到2026年,Java8 也是目前企业里最常用版本,电脑上没有装 JDK 可以参考之前文章(怎样Windows系统下载安装...二、创建项目文件 按照控制器->服务层->持久层->映射文件->实体顺序依次编写 1、创建文件夹目录 java/com下四个:controller、service(及子目录impl)、dao、entity...三、测试SpringBoot是否可运行 1、启动类同级或子目录下创建测试控制器 启动配置文件.idea文件夹下面,里面指定了启动类(包含main函数类)。

    14310

    存储技术架构总览

    协议层: 物理层之上是协议层,各种物理介质内,数据统一抽象成0和1字符串,但面对各种具体数据使用场景和不同数据接受者,我们需要用不同形式来传输、呈现这些数据,这就需要不同协议。...但是,在网络存储中,基础数据不是存储本地存储介质中,而是存储另一台服务器上,不同客户端可以以类似于文件系统方式访问此服务器上文件。这种系统被称为网络文件系统。...架构层: 协议层,我们了解了存储设备是如何使用者呈现数据,再往上,我们需要考虑如何对各个服务器、机房、资源池进行管理,我们将这一层称为架构层,可分为集中式存储和分布式存储两种。...分布式存储是采用分布式架构存储集群,将数据分布不同物理位置,并通过网络把它连接起来。...机头中有包含两个控制器,互为备用, 避免硬件故障导致整个存储系统不可用。机头是所有数据统一出入口,通常包含前端端口和后端端口,前端端口用户为服务器提供存储服务,而后端端口用于扩充存储系统容量。

    1.1K20

    Thinkphp 6 小于 6.0.2 任意文件创建覆盖漏洞分析

    本文作者:1x2Bytes(信安之路红蓝对抗小组成员) 6.0.0 中有两个版本存在该漏洞, dev 版本只能覆盖任意位置文件,6.0.0-1 则可以特定情况下控制写入内容实现 getshell...,看到一些师傅 blog 文章使用 composer 下载源码, Thinkphp6 也确实开始使用 composer 方式进行安装但是使用 composer 方式下载源码无法复现,猜测进行了修复...,配置文件config/session.php,如果存在配置则拼接到路径最后并在 $name 前加上字符串sess_,不存在则直接拼接sess_前缀后返回文件名,最后 write 方法进行了 writeFile...操作,跟进 writeFile 方法,文件 170 行进入 file_put_contents 操作,其中文件名和内容我们都可控,我们下一步要查看如何控制我们写入值和文件名 ?...\SessionInit::class然后控制器使用 Thinkphp session 方法设定值, Index 控制器中修改 index 方法 public function index

    2K20

    ASP.NET MVC5高级编程——(1)了解MVC模式和第一个MVC程序、认识控制器

    MVC 编程模式 MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序模式: Model(模型)表示应用程序核心(比如数据库记录列表)...全局应用程序控制文件 3、MVC中约定: 视图访问和寻址规则 1)、控制器使用View()方法调用视图,返回和“动作方法同名”视图 2)、寻址规则:View()方法默认从“View文件夹”下寻找和控制器同名文件夹...MVC中约定 1)、控制器:必须以Controller结尾 2)、视图:必须放在Views文件夹下,并且要和控制器同名子目录中创建 约定胜于配置 1)、提前规定好 2)、无需配置 3)、不遵守规则则出错...比如我们现在新建这个Store页面,我们修改他Index方法: 然后URL为:http://localhost:54297/Store 当然,不同机器可能端口号不一样,自己更改即可,或者vs中...,该参数名称为ID,如果操作方法中有名为ID参数,那么Asp.Net MVC 会自动将这个URL片段作为参数传进来,就是ID值!

    1.9K20
    领券