我有一个奇怪的问题,我似乎无法弄清楚与Rails参数有关。
我有一个控制器,我可以在其中允许任何参数。在此控制器中,参数(csv_type
)控制我将响应的CSV文件。例如[registration
或attendance
类型的CSV。
此参数是通过路径(例如:abcs_path(@abc,格式:'csv',csv_type:'出席')在URL中构建的,导致/abcs/id.csv?csv_type=attendance
。
我希望{"csv_type"=>"attendance", "controller"=>"abcs", "action"=>"show", "id"=>"45", "format"=>"csv"}
,但在生产中我得到{"controller"=>"abcs", "action"=>"show", "id"=>"45", "format"=>"csv"}
。 csv_type
不见了。
这在本地完美运行,我得到了所有参数。在Heroku评论应用上也能很好地工作。当我在RAILS_ENV=production
上本地运行时,效果也很好。
但是在实际生产中却没有。它也不适用于使用RAILS_ENV=production
配置的暂存。尽管评论应用程序也为RAILS_ENV=production
,但整个事情还是一个谜。
想法:-nginx
弄乱了域名(暂存和生产在正式域名上,review app是Heroku域名,本地是localhost)。-sqreen以某种方式拦截了这个-mime.types和https(尝试将csv添加到rails,但没有成功)。没有在nginx上添加-在参数上允许一些Rails配置(尽管我在params.permit!
中做),只是为了确保-一些ENV变量弄乱了吗?-想不到其他了吗?
提前感谢您的帮助!
如果您使用上面的Rails 5,则可以尝试使用request.parameters.merge并将参数放入带有示例的hash中,如下所示:>
before_action