我需要一些快速的帮助。
突然间,我的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请求?也许这会暗示一下。