刚刚升级到Rails 4.2,当我尝试编辑具有多个has_many对象的模型时,我在localhost和生产中获得内部服务器错误.这是我在rails控制台上看到的消息
!! Unexpected error while processing request: Too many open files - Maximum file multiparts in content reached
Run Code Online (Sandbox Code Playgroud)
该请求甚至没有到达控制器,即,我没有在rails的控制台中看到通常的以下行
Started GET "/feeds/3/edit" for 127.0.0.1 at 2015-01-04 20:07:19 -0800
Processing by FeedsController#edit as HTML
......
......
Run Code Online (Sandbox Code Playgroud)
任何线索?使用Ruby 2.1.5升级到2.2没有运气.
Cra*_*nox 67
看起来在Rails 4.2版本的Rack中添加了多部分限制(https://github.com/rack/rack/commit/b0b5fb9467e6ed777d3eaf35afc81d758e308aab).默认值为128,对于您的目的而言可能太少,这是我的.在初始化程序中将值设置为0将删除限制并修复问题:
Rack::Utils.multipart_part_limit = 0
Run Code Online (Sandbox Code Playgroud)
我建议定制值,直到它符合您的需要,这样您的服务器就不会用完文件句柄.我的应用程序使用了一个庞大的表单,将其设置为512似乎对我有用.
Scu*_*tti 14
您也可以将环境变量传递给应用程序,如此处所示(https://github.com/rack/rack/blob/8d21788798b521b97beb10047ebf593ddc0aaed2/lib/rack/utils.rb#L75).
RACK_MULTIPART_PART_LIMIT=0 rails server
看起来Rack 1.6中存在一个错误,其中所有HTML输入元素都被计为多部分形式的打开文件.正如其他人指出的那样,您可以将限制更改为0以禁用该功能,或者突破限制.
https://github.com/rack/rack/pull/814
| 归档时间: |
|
| 查看次数: |
5372 次 |
| 最近记录: |