我拥有paperclip网站的所有默认设置。当我创建一个新的应用程序并放入设置时,一旦我保存我的模型,'photo'paperclip属性得到很好的保存,一切都很好(这是SQL INSERT示例):
"photo"=>#<ActionDispatch::Http::UploadedFile:0x007f990a3d92d0
@original_filename="Screen Shot 2011-10-21 at 6.02.56 AM.png",
@content_type="image/png", @headers="Content-Disposition: form-data;
name=\"event[photo]\"; filename=\"Screen Shot 2011-10-21 at 6.02.56
AM.png\"\r\nContent-Type: image/png\r\n"
我得到了:
[paperclip] Saving attachments
现在在我的应用程序中我使用Devise和Cancan的其他应用程序,我有完全相同的Paperclip设置,我确实得到了
[paperclip] Saving attachments.
但是,它没有保存“照片”,也没有看到照片属性定义。 现在我已经看到一个类似的帖子,可以解决添加
attr_accessible photo
到模型,我这样做了,但仍然无法正常工作。 我一直在浪费这么多时间,有时我觉得我应该创建自己的图片上传...
有什么想法吗? THX!
顺便说一下。在简单的脚手架对象上添加的问题相同attr_accessible:照片
答案 0 :(得分:1)
如果您使用的是jQuery Mobile等框架或某种AJAX / PJAX机制,那么您的上传将在Ajax中作为POST丢失,因为JS无法读取您的本地文件......
您必须使用一些类似uploadify的插件或以“常规”方式提交表单。
编辑: 为了清楚起见,最简单的方法是添加data-ajax =“false”作为表单属性。在Rails 3中,使用表单助手,你会在这些行上写下一些东西:
<%= form_for (@my_object, html: {data: {ajax: false}}) do |f| %>
...
<% end %>