【发布时间】:2014-01-25 08:04:51
【问题描述】:
我正在尝试为网站的一部分(通过 ajax)提供一次性图片上传功能。现在,发布的值如下所示:
Processing by ApiPostsController#upload_image as */*
Parameters: {"file"=>#<ActionDispatch::Http::UploadedFile:0x007feb23c28420 @original_filename="yoko.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"file\"; filename=\"yoko.jpg\"\r\nContent-Type: image/jpeg\r\n", @tempfile=#<File:/var/folders/58/8l1dcc5n6dd_7mhqvqr_3zm40000gn/T/RackMultipart20140107-70298-1mih9mx>>}
this is auth_token WgfFAEz3JIApcWDjz2dRgA
我想在控制器中做这样的事情:
def upload_image
@asset=Asset.new
@asset.asset_file_name=params[:filename]
@asset.save!
r={}
r[:status]="success"
render text: r.to_json
end
我们的资产模型使用资产作为名称(很遗憾)。
mysql> describe assets;
+----------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(255) | YES | | NULL | |
| created_at | datetime | NO | | NULL | |
| updated_at | datetime | NO | | NULL | |
| asset_file_name | varchar(255) | YES | | NULL | |
| asset_content_type | varchar(255) | YES | | NULL | |
| asset_file_size | int(11) | YES | | NULL | |
| asset_updated_at | datetime | YES | | NULL
我正在尝试按照回形针的自述文件中的说明进行操作:
Paperclip 最多可以包含四个属性(所有属性都以 附件的名称,因此每个模型可以有多个附件,如果 你希望)并给他们一个友好的前端。这些属性是:
_file_name _文件大小 _内容类型 _updated_at
默认情况下,回形针只需要 _file_name 操作。
但我得到了这个错误
ActiveRecord::RecordInvalid(验证失败:资产不能为空): app/controllers/api_posts_controller.rb:21:in `upload_image'
我怎样才能让回形针接受这个上传的文件?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3.2 paperclip