带有Rails的回形针和临时文件

时间:2010-03-20 13:47:45

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-1.9

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

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

  

无法将nil转换为Integer

查看堆栈顶部

  

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

     

... rails3 / lib / paperclip / processor.rb:46:在`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:在`initialize'

问题似乎在tempfile中。

我的代码:

_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 个答案:

答案 0 :(得分:2)

我不相信paperclip还支持ruby 1.9。

尝试下载到ruby 1.8.7并查看问题是否仍然存在。

答案 1 :(得分:2)

你必须应用这个补丁http://github.com/dwalters/paperclip/commit/2a85add5f102db8773518f8ac30f7e2337bf7d13才能让回形针在1.9.2上工作,因为无法将nil转换成整数错误

答案 2 :(得分:2)

现在已经在回形针2.3.3版中修复了这个问题。看到这个提交: https://github.com/thoughtbot/paperclip/commit/1bcfc14388d0651c5fc70ab9ca3511144c698903

答案 3 :(得分:0)

Here有人在ruby 1.9上使用Paperclip与你的问题类似(但没有解决方案)。所以可能是ruby版本的问题。