Rails Params哈希不再工作了

时间:2014-03-01 12:26:53

标签: ruby-on-rails-4

我需要一些快速的帮助。

突然间,我的rails 4应用程序不再工作了。每当我做一个表格时,它都会说undefined method 'permit' for #<Array: ... >。这种情况发生在[class]_params方法的每个控制器中。日志声明,参数如下:

Parameters: {"utf8"=>"✓", "authenticity_token"=>"...", "page"=>["This is a page title", "this is the pages content"]}

正如您所看到的,page的参数不能作为哈希而是作为平面数组列表正确进入。为什么是这样?我使用form_for。我监控本地计算机上的网络流量,POST请求看起来像这样:

utf8=✓
authenticity_token=...
page[title]=This is a page title
page[content]=This is the pages content

所以在请求网站上,一切似乎都没问题。为什么rails突然将它全部合并到一个扁平阵列?我甚至不知道在哪里看......

编辑:

好的,我有一个提示。 params过去正确的请求具有以下日志条目:

Processing by PagesController#update as HTML

而只有当HTML*/*交换时才发生混乱的参数:

Processing by PagesController#update as */*

仍然不知道,为什么突然发生了。它说现在有了所有要求。知道是什么原因引起的吗? */*甚至意味着什么?

编辑2:

现在再好一点,然后我会离开它。我在日志中注意到处理为html在12点停止了。

处理时为HTML的上次时间戳:2014-03-01T11:59:33.758744

处理为*/*的第一个时间戳:2014-03-01T12:00:21.575461

处理为*/*的所有其他请求。我在12点左右对这个变化表示怀疑,也许有些服务器更新了我不知道的废话?还是我变得偏执?不知道在哪里可以看。

哦还有一个问题:有没有办法在rails服务器输出/日志文件中显示rails收到的原始http请求?也许这会暗示一下。

0 个答案:

没有答案