Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 重定向时头参数散列中有格式键,但呈现时没有格式键,原因是什么?_Ruby On Rails_Parameters_Http Headers - Fatal编程技术网

Ruby on rails 重定向时头参数散列中有格式键,但呈现时没有格式键,原因是什么?

Ruby on rails 重定向时头参数散列中有格式键,但呈现时没有格式键,原因是什么?,ruby-on-rails,parameters,http-headers,Ruby On Rails,Parameters,Http Headers,我有一个控制器#操作,当重定向到#时,该操作会在标题参数中附加一个url,并附加“.1”和params[“format”=>1']。当我在没有重定向的情况下点击同一个控制器#操作时,例如从链接到,url没有附加此“.1”变量,参数哈希也不包含格式变量 为什么在以一种方式而不是另一种方式命中动作时会出现此变量?此变量的用途是什么?代码如下: 路线/rb root 'routes#root' RouteController.rb: class RoutesController < Appli

我有一个控制器#操作,当重定向到#时,该操作会在标题参数中附加一个url,并附加“.1”和
params[“format”=>1']
。当我在没有重定向的情况下点击同一个控制器#操作时,例如从
链接到
,url没有附加此“.1”变量,参数哈希也不包含
格式
变量

为什么在以一种方式而不是另一种方式命中动作时会出现此变量?此变量的用途是什么?代码如下:

路线/rb

root 'routes#root'
RouteController.rb:

class RoutesController < ApplicationController
before_filter :authenticate_user!

    def root
    if current_user.company.present? 
      redirect_to new_company_quote_path(current_user, current_user.company) #, status '301'
    else
      redirect_to new_company_path(current_user) #, status '301'
    end
  end
end

我相信这两条路线可能是:

new_company_quote_path(current_user.company)
new_company_path
由于正在传递额外的参数,因此认为这些参数是用于
:format
键的,并调用
对其进行参数设置。试图找到一些关于生成的路由助手的文档,以验证将要发生的情况,但运气不佳,因此这更多的是一种“强烈怀疑”,而不是已验证的事实。虽然这至少有一部分是可以验证的


因此,
new
路径不采用
:id
(因此不需要任何参数),然后,
new\u company\u quote\u path
听起来是嵌套的,因此将采用单个参数(公司)

我认为有问题的两条路径应该是:

new_company_quote_path(current_user.company)
new_company_path
由于正在传递额外的参数,因此认为这些参数是用于
:format
键的,并调用
对其进行参数设置。试图找到一些关于生成的路由助手的文档,以验证将要发生的情况,但运气不佳,因此这更多的是一种“强烈怀疑”,而不是已验证的事实。虽然这至少有一部分是可以验证的


因此,
new
路径不采用
:id
(因此不需要任何参数),然后,
new\u company\u quote\u path
听起来是嵌套的,因此将采用单个参数(公司)

.1
是一个格式后缀(想想以
.html
.php
结尾的网页)。我的猜测是rails希望在某个地方接收格式和资源id。
.1
是一个格式后缀(想想以
.html
.php
结尾的网页)。我的猜测是rails希望在某个地方接收格式和资源id。当然@simple lime,谢谢,你完全正确当然@simple lime,谢谢,你完全正确
photos_path returns /photos
new_photo_path returns /photos/new
edit_photo_path(:id) returns /photos/:id/edit (for instance, edit_photo_path(10) returns /photos/10/edit)
photo_path(:id) returns /photos/:id (for instance, photo_path(10) returns /photos/10)