2013-02-11 126 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