我正在生产中的独角兽上在http://ec2-54-245-163-172.us-west-2.compute.amazonaws.com上运行我的名为 Mockaroo 的应用程序。大约每 10 次用户单击主页上的“下载”按钮,post 参数没有正确转换为传递给控制器的参数哈希,在这种情况下会导致某些必需的参数不存在。根据错误页面中显示的调试输出,我可以判断出这种情况。发生错误时,参数看起来像:
{"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 上运行 unicorn,而不是在另一个 Web 服务器(如 nginx 或 apache)后面。有没有其他人遇到过这个问题?如果您想自己尝试一下,当您看到以下消息时,您就会知道您遇到了错误:
NoMethodError in DataController#generate
undefined method `empty?' for nil:NilClass
最奇怪的是,它只出现在 Chrome 和 Safari 等 webkit 浏览器中,而从未出现在 Firefox 中。有没有人遇到过这样的事情。对于如何进一步调试有什么建议吗?
- 更新 -
值得注意的是,我使用乘客和 apache 在另一台服务器上安装了相同的应用程序,并且没有发生此错误 - 所以它一定是独角兽特有的。