Ruby on rails 重定向时头参数散列中有格式键,但呈现时没有格式键,原因是什么?
我有一个控制器#操作,当重定向到#时,该操作会在标题参数中附加一个url,并附加“.1”和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
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)