【问题标题】:File Handling with Paperclip用回形针处理文件
【发布时间】:2012-08-21 03:55:11
【问题描述】:

我在为特定用例构建的 gem 中使用 Paperclip。我的 gem 为非程序员创建和编辑表单创建了一个界面,然后允许用户回答这些表单。

我想使用 Paperclip 来为问题提供“文件上传”输入类型,因此我的表单更加通用。但是,这意味着我需要使用file_field_tag 方法来显示文件输入,并且我需要手动将通过该输入提交的任何信息保存到适当的模型对象中。目前我正在使用名称question_1 发送信息,然后尝试使用params["question_1"] 提取上传的数据。

我的代码如下所示:

    answer.update_attributes(upload: params["question_1"])

但我收到了No handler found for <image_name> 错误,我不知道自己做错了什么。我认为 Paperclip 在我将来自file_field 的数据传递给它之后会处理所有事情?

解决方案:

我的表单应该是这样的:<%= form_for @answer_set, multipart: true do %>,而它应该是这样的:<%= form_for @answer_set, html: { multipart: true } do %>

【问题讨论】:

    标签: ruby-on-rails-3 file-upload paperclip


    【解决方案1】:

    我用

    has_attached_file :image
    validates_attachment_presence :image
    validates_attachment_content_type :image, :content_type => ['image/jpeg', 'image/png', 'image/jpg', 'image/pjeg']
    

    然后:

    @upload = Upload.find(params[:id])
    @upload.update_attributes(params[:upload])
    

    config/environment.rb

    Rails::Initializer.run do |config|
      config.gem "paperclip", version: "~> 2.7"
    end
    

    这个帖子还建议检查表单上的多部分 https://stackoverflow.com/a/10076046/1354978

    answer_form_for @upload, :html => {:multipart => true} do |f|
    

    该页面上还有其他可能的解决方案。

    【讨论】:

    • 原来我错误地完成了表单中的多部分代码。感谢您的回答!
    猜你喜欢
    • 2010-12-12
    • 1970-01-01
    • 2011-07-05
    • 2012-12-18
    • 2011-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-02
    相关资源
    最近更新 更多