2

我正在尝试编写一个 Rails 应用程序,用户可以在其中上传图像,但 Paperclip 似乎对我不起作用。

我已经完成了所有基本步骤(添加了 has_attached_file、迁移、制作多部分表单),但是每当我尝试上传图像时,我都会遇到同样的错误:

无法将 nil 转换为 Integer

查看栈顶

...rails3/lib/paperclip/processor.rb:46:in `sprintf'

...rails3/lib/paperclip/processor.rb:46:in `make_tmpname'

.../ruby-1.9.2-head/lib/ruby/1.9.1/tmpdir.rb:154:in `create'

.../ruby-1.9.2-head/lib/ruby/1.9.1/tempfile.rb:134:in `initialize'

似乎问题出在临时文件中。

我的代码:

_form.rb

<%= form_for @high_school, :html => {:multipart => true} do |f| %>
  <%= f.error_messages %>
  ...
  <div class="field">
    <%= f.file_field :photo %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

模型/high_school.rb

...
validates_length_of :password, :minimum => 4, :allow_blank => true
has_attached_file :photo
has_many :students
...

这是一个已知问题吗?我基本上是按照 github 到信中的说明进行操作的。

我的环境:Rails3 和 Ruby 1.9.2dev

谢谢!

4

4 回答 4

2

我不相信回形针支持 ruby​​ 1.9。

尝试下降到 ruby​​ 1.8.7,看看问题是否仍然存在。

于 2010-03-20T17:27:44.750 回答
2

您必须应用此补丁http://github.com/dwalters/paperclip/commit/2a85add5f102db8773518f8ac30f7e2337bf7d13以使回形针在 1.9.2 头上工作,因为无法将 nil 转换为整数错误

于 2010-04-22T18:24:22.990 回答
2

这已在回形针 2.3.3 版中得到修复。请参阅此提交: https ://github.com/thoughtbot/paperclip/commit/1bcfc14388d0651c5fc70ab9ca3511144c698903

于 2011-01-06T04:55:18.310 回答
0

在这里,有人在 ruby​​ 1.9 上使用 Paperclip 遇到了与您类似的问题(但没有解决方案)。所以可能是红宝石版本的问题。

于 2010-03-21T14:21:31.117 回答