2013-02-11 124 views
0

我有一个包含名为“application_path”的文件上传字段的表单。我安装了“Paperclip”创业板。但是,当我只是提出我的形式,而没有选择任何文件,然后我得到错误Ruby on Rails:回形针错误

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 

我在这里失踪了什么?

回答

2

你缺少一个设置为回形针的ApplicationInstance线。在application_instance.rb

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

您也可能丢失回形针所需的列,您可以通过

rails g paperclip application_instance application_path 
+0

感谢您的回复,我想知道在使用回形针上传新文件之前,是否可以执行自定义操作,如从同一文件夹位置删除文件? – neeraj 2013-02-11 10:40:33

+0

你想覆盖文件吗?我真的不知道应该如何工作,但可以使用'FileUtils.rm(application_instance.application_path.path)'来删除文件' – jvnill 2013-02-11 14:44:56

2

下面的链接可以帮助你
Upload image using paperclip in Rails

+0

不知怎的,我能够上传文件生成,但是当我加入模型validates_format_of代码:APPLICATION_PATH ,:with =>%r {\。(txt)$}我在哪里“application_path”是我的字段名称,然后我得到错误“应用程序路径无效”,即使我想上传文本文件....任何想法? – neeraj 2013-02-11 08:26:47