Paperclip - 查询INSERT中未传递的图像属性

时间:2012-05-12 19:20:45

标签: ruby-on-rails paperclip

我拥有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:照片

1 个答案:

答案 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 %>