我正在尝试编写一个用户可以上传图像的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
谢谢!
答案 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版本的问题。