我在生产中的独角兽http://ec2-54-245-163-172.us-west-2.compute.amazonaws.com上运行了名为Mockaroo的应用程序。用户单击主页上的“下载”按钮时,每10次中有大约1次,后置参数未正确转换为传递给控制器的参数散列,在这种情况下会导致某些所需的参数不存在。我可以告诉这是基于错误页面中显示的调试输出的情况。当错误发生时,params看起来像:
{"mns_attributes"=>{"1"=>{"min_date"=>"2/28/2012"}},
"schema"=>{"columns_attributes"=>{"1"=>{"max_date"=>"3/1/2013",
"date_format"=>"%-m/%-d/%Y",
"values"=>"",
"min_words"=>"10",
"max_words"=>"20",
"min_paragraphs"=>"1",
"max_paragraphs"=>"3", ...
它实际上应该是什么样的
{"utf8"=>"✓",
"authenticity_token"=>"LAV7Olx38E2UH64CS6BWpIT1qiHigcwfF780250iHkE=",
"schema"=>{"columns_attributes"=>{"0"=>{"name"=>"id",
"forgery_type"=>"Popular.row_number",
"position"=>"1",
"min"=>"1",
"max"=>"100",
"decimal_places"=>"2",
"min_date"=>"2/28/2012",
"max_date"=>"2/28/2013", ...
这几乎就像是放下了帖子的第一部分。当我在开发中运行时,这不会发生。请注意,我正在端口80上直接运行独角兽,而不是像nginx或apache这样的其他Web服务器。还有其他人遇到过这个问题吗?如果您想自己尝试一下,当您看到以下消息时,您会发现错误:
NoMethodError in DataController#generate
undefined method `empty?' for nil:NilClass
最离奇的部分是它只出现在Chrome和Safari等webkit浏览器中,但从未出现在Firefox中。有没有人碰到这样的事情。有没有关于如何进一步调试的建议?
- 更新 -
值得注意的是,我使用乘客和apache在另一台服务器上安装了相同的应用程序并且不会发生此错误 - 所以它必须是独角兽特有的。