Ruby on rails 如何将已发布的文件指定给控制器中的回形针模型
我正在尝试为网站的一部分提供一次性的图像上传功能(通过ajax)。现在,发布的值如下所示:Ruby on rails 如何将已发布的文件指定给控制器中的回形针模型,ruby-on-rails,ruby-on-rails-3.2,paperclip,Ruby On Rails,Ruby On Rails 3.2,Paperclip,我正在尝试为网站的一部分提供一次性的图像上传功能(通过ajax)。现在,发布的值如下所示: Processing by ApiPostsController#upload_image as */* Parameters: {"file"=>#<ActionDispatch::Http::UploadedFile:0x007feb23c28420 @original_filename="yoko.jpg", @content_type="image/jpeg", @headers=
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
我们的资产模型使用资产作为名称(不幸的是)
我试着按照回形针的自述,上面写着:
回形针最多可包含四个属性(所有属性都以该属性为前缀)
附件的名称,因此在以下情况下,每个模型可以有多个附件:
你希望)并给他们一个友好的前端。这些属性是:
_文件名
_文件大小
_内容类型
_更新地址
默认情况下,使用回形针只需要_文件_名称
操作
但是我得到了这个错误
ActiveRecord::RecordInvalid(验证失败:资产不能为空):
app/controllers/api_posts_controller.rb:21:in'upload_image'
如何让回形针接受此上载文件?尝试:
@asset.asset = params[:file]
文档中所写的内容意味着您可以将这四列添加到模型中,并在保存附件时自动填充它们asset\u file\u name
是唯一必需的列,它将包含在服务器上创建的新文件的名称。
如果您单独指定文件名,您将只填充数据库中的一列,但文件本身不会保存在服务器的磁盘上-您需要指定整个文件,回形针将处理其余的文件 这看起来很有效;非常感谢你!!我得等几分钟。
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
@asset.asset = params[:file]