【发布时间】:2015-03-28 02:56:22
【问题描述】:
根据此 railscast 剧集http://railscasts.com/episodes/416-form-objects,我为每个步骤构建了一个包含自定义表单对象的多步骤表单。
简而言之,我有 4 个步骤对象,看起来像这样
class FormStep1
include ActiveModel::Model
attr_accessor :name, email
validates :name, presence: true
validates :email, presence: true
...
我现在可以在各个步骤上调用 validate。这些对象中的每一个都有一个“提交”方法,该方法将其字段复制到另一个继承自 ActiveRecord::Base 的 AllTheSteps 模型
class AllTheSteps < ActiveRecord::Base
...
到目前为止效果很好,但现在我需要在其中一个步骤中添加文件附件。我不知道该怎么做。我可以在 FormStep 对象中包含验证器并将其添加到徽标字段
class FormStep1
include ActiveModel::Model
include Paperclip::Validators
attr_accessor :name, email, :picture
validates :name, presence: true
validates :email, presence: true
validates_attachment_file_name :picture, :matches => [/png\Z/, /jpe?g\Z/]
但运行此代码会引发以下错误
undefined method `before_picture_post_process'
我觉得我还必须在某个地方引入 has_attached_file,但由于我的表单对象不是活动记录,因此可能无法正常工作。然后还有如何将图像数据从表单对象复制到 AllTheSteps 对象的问题。
这甚至可以用回形针做吗?是否有另一种选择可以使其可行?
谢谢!
【问题讨论】:
-
嗨...您能找到解决方案吗?我正在尝试通过我的表单对象将图像附件上传到第 3 方服务...我不想将图像存储在我的服务器中。
标签: ruby-on-rails forms paperclip image-uploading