Ruby on rails 在生产环境中响应csv格式时,Rails参数为空

Ruby on rails 在生产环境中响应csv格式时,Rails参数为空,ruby-on-rails,csv,parameters,Ruby On Rails,Csv,Parameters,我遇到了一个奇怪的问题,我似乎无法找出与rails参数相关的问题 我有一个允许任何参数的控制器。在此控制器中,参数(csv_type)控制我将响应哪个csv文件。例如,注册或出勤类型的CSV 此参数通过路径(例如:abcs_路径(@abc,格式:'csv',csv_类型:'Attention')内置在URL中,结果是/abcs/id.csv?csv_类型=Attention 我希望{“csv类型”=>“出勤”、“管制员”=>“abcs”、“动作”=>“表演”、“id”=>“45”、“格式”=>“

我遇到了一个奇怪的问题,我似乎无法找出与rails参数相关的问题

我有一个允许任何参数的控制器。在此控制器中,参数(
csv_type
)控制我将响应哪个csv文件。例如,
注册
出勤
类型的CSV

此参数通过路径(例如:abcs_路径(@abc,格式:'csv',csv_类型:'Attention')内置在URL中,结果是
/abcs/id.csv?csv_类型=Attention

我希望
{“csv类型”=>“出勤”、“管制员”=>“abcs”、“动作”=>“表演”、“id”=>“45”、“格式”=>“csv”}
但在生产中我得到了
{“管制员”=>“abcs”、“动作”=>“表演”、“id”=>“45”、“格式”=>“csv”}
csv类型

这在本地运行非常完美,我获得了所有参数。在Heroku review应用程序上也运行良好。在
RAILS\u ENV=production
本地运行时也运行良好

但在实际生产中,它不起作用。它也不适用于配置了
RAILS\u ENV=production
的登台。尽管review应用程序也是
RAILS\u ENV=production
,这让整个事情变得神秘

想法: -
nginx
搞乱了域名(登台和制作在官方域名上,审查应用程序是Heroku域名,本地是本地主机)。 -sqreen不知怎么截获了这个 -mime.types和https(已尝试将csv添加到rails,但未成功)。未添加到nginx上 -一些rails在params-permit上进行配置(尽管我正在执行
params.permit!
)在
上,然后再执行
操作,以确保 -一些环境变量搞砸了? -想不出别的了


提前感谢您的帮助!

在Sqreen,我们不接触参数,因为它们在最新版本中可能会被冻结。事实上,我们甚至复制了参数哈希以防止任何冲突(当其他人在我们迭代时修改参数时,我们遇到了一个错误)但是,
type
*\u type
名称在Rails中通常是有问题的,最好避免,因为它是ActiveRecord中STI和多态关联的命名魔法。开发和生产之间的区别还包括类的延迟/急切加载和ActiveRecord类上访问器的延迟/急切定义,以及puma或unicorn等分叉web服务器提供预加载功能。在任何情况下,通过不断引用的加载顺序可能会产生影响,也可能不会产生影响。但从参数中删除最有可能的是强参数不匹配,例如缺少、键入错误或处理错误的
require
permit
。至于生成CSV,不需要任何东西确实如此。请确保将
文本/csv
作为
内容类型
标题发送回。如果要在Excel中打开csv,请添加BOM表,您将省去很多麻烦:
“\xEF\xBB\xBF”。强制编码('UTF-8'))
。至于响应
Accept:text/csv
,您可能会发现这个代码段很有用:并在您拥有的任何对象上实现一个
to_csv
。我尝试在一个方法中执行一个
params.permit!
并从生成csv的控制器调用它,但仍然无法在生产环境中运行,因为参数不在那里。at Sqreen我们不接触参数,因为它们在最近的版本中可能会被冻结。事实上,我们甚至复制了参数哈希以防止任何冲突(当我们迭代时,其他人修改参数时,我们遇到了一个错误)但是,
type
*\u type
名称在Rails中通常是有问题的,最好避免,因为它是ActiveRecord中STI和多态关联的命名魔法。开发和生产之间的区别还包括类的延迟/急切加载和ActiveRecord类上访问器的延迟/急切定义,以及puma或unicorn等分叉web服务器提供预加载功能。在任何情况下,通过不断引用的加载顺序可能会产生影响,也可能不会产生影响。但从参数中删除最有可能的是强参数不匹配,例如缺少、键入错误或处理错误的
require
permit
。至于生成CSV,不需要任何东西确实如此。请确保将
文本/csv
作为
内容类型
标题发送回。如果要在Excel中打开csv,请添加BOM表,您将省去很多麻烦:
“\xEF\xBB\xBF”。强制编码('UTF-8'))
。至于响应
Accept:text/csv
,您可能会发现这个代码片段很有用:并在您拥有的任何对象上实现一个
to_csv
。我尝试在一个方法中执行一个
params.permit!
并从生成csv的控制器调用它,但仍然无法在生产环境中运行,因为参数不在那里。