Windows上的Paperclip - 未定义的方法`split'代表nil:NilClass

时间:2012-07-01 00:22:10

标签: ruby-on-rails ruby imagemagick paperclip

当我尝试保存上传的文件时,我得到nil的未定义方法`split':NilClass

@user.avatar=params[:user][:avatar]

以下是来自服务器日志的错误:

[32mCommand[0m :: identify -format %wx%h "C:/progs/web/ror_site_1/tmp/Rus220120701-4976-1sky1nn.jpg[0]"
[32mCommand[0m :: identify -format %m "C:/progs/web/ror_site_1/tmp/Rus220120701-4976-1sky1nn.jpg[0]"
[32mCommand[0m :: identify -format %m "C:/progs/web/ror_site_1/tmp/Rus220120701-4976-1sky1nn.jpg[0]"
[32mCommand[0m :: convert "C:/progs/web/ror_site_1/tmp/Rus220120701-4976-1sky1nn.jpg[0]" -resize "300x300>" "C:/progs/web/ror_site_1/tmp/Rus220120701-4976-1sky1nn20120701-4976-a9j1sh"
[32mCommand[0m :: file -b --mime "C:/progs/web/ror_site_1/tmp/Rus220120701-4976-1sky1nn20120701-4976-a9j1sh20120701-4976-tm6qoj"
  [1m[36m (0.0ms)[0m  [1mROLLBACK[0m
Completed 500 Internal Server Error in 406ms

NoMethodError (undefined method `split' for nil:NilClass):
  app/controllers/users_controller.rb:94:in `block in update'
  app/controllers/users_controller.rb:93:in `update'

我猜问题是文件名太长(C:/ progs / web / ror_site_1 / tmp / Rus220120701-4976-1sky1nn20120701-4976-a9j1sh20120701-4976-tm6qoj)并且无法在Windows中读取。如果是这样,如何更改文件名生成规则?

如果没有,那就是问题的原因?

1 个答案:

答案 0 :(得分:3)

这是几个最新版本的回形针(explained here)的一个问题。我也遇到了这个问题,直到我将回形针设置回3.0.4版本才能再次使用。

所以只需将它放在Gemfile中,直到修复程序发布:

gem 'paperclip', '3.0.4'