【问题标题】:Ruby on Rails: paperclip errorRuby on Rails:回形针错误
【发布时间】:2013-02-11 07:17:28
【问题描述】:

我有一个包含名为“application_path”的文件上传字段的表单。我安装了“Paperclip”GEM。但是当我只是提交我的表单而不选择任何文件时,我会收到错误

undefined method `application_path_file_name' for #<ApplicationInstance:0x0000000561bc28>

这是该错误页面中显示的我的请求参数

{"utf8"=>"✓",
 "authenticity_token"=>"p3Y0SZT6wIonrrnzughybh8hywnkE1i3uBnxwrU4u9w=",
 "application_instance"=>{"device_id"=>"",
 "application_version_profile_id"=>""},
 "commit"=>"Create Application instance"}

上述参数不包含“application_path”的空白值。 这是我的模型

class ApplicationInstance < ActiveRecord::Base
  attr_accessible :application_version_profile_id, :device_id, :is_deleted, :application_path

  # Validations  
  validates :application_version_profile_id, :presence => true  
  validates :device_id, :presence => true
  validates_attachment_presence :application_path                    
  validates_attachment_size :application_path, :less_than=>1.megabyte

我在这里缺少什么?

【问题讨论】:

    标签: ruby-on-rails paperclip


    【解决方案1】:

    您缺少为ApplicationInstance 设置回形针的行。在你的application_instance.rb

    has_attached_file :application_path, styles: { medium: '300x300>', thumb: '100x100>' }
    

    您可能还缺少可以由

    生成的回形针所需的列
    rails g paperclip application_instance application_path
    

    【讨论】:

    • 感谢您的回复,我想知道这是否可以在使用回形针上传新文件之前执行自定义操作,例如从同一文件夹位置删除文件?
    • 您要覆盖文件吗?我不太确定这应该如何工作,但您可以使用 FileUtils.rm(application_instance.application_path.path) 删除该文件
    【解决方案2】:

    以下链接可能对您有所帮助
    Upload image using paperclip in Rails

    【讨论】:

    • 不知何故我能够上传文件但是当我在模型中添加代码时 validates_format_of :application_path, :with => %r{\.(txt)$}i 其中“application_path”是我的字段名称然后我得到错误“应用程序路径无效”即使我正在尝试上传文本文件....有什么想法吗?
    猜你喜欢
    • 2017-01-14
    • 2013-04-15
    • 1970-01-01
    • 2015-11-14
    • 2015-06-26
    • 2016-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多