【问题标题】:Paperclip attachement on customer form object?客户表单对象上的回形针附件?
【发布时间】: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


【解决方案1】:

您可以按照以下步骤使用回形针上传图片:

1.) 将 gem 添加到 Gemfile 中

gem 'paperclip'

那就bundle install

2.) 然后用这个命令生成图片附件

rails g paperclip report picture

3.) 然后为图片迁移创建迁移

rake db:migrate

4.) 然后将其添加到您的模型中

has_attached_file :picture, :styles => { :medium => "300x300>", :thumb => "100x100>" }, :default_url => "/images/:style/missing.png"
validates_attachment_content_type :picture, :content_type => /\Aimage\/.*\Z/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多