2013-05-09 58 views
0

我使用回形針允許用戶在我的導軌應用程序中上傳圖像。通過回形針保存之前重命名圖像 - 導軌2.3.5

我想通過在將當前時間附加到文件名後將其上載的圖像重命名,然後將它們保存到數據庫中。

這是我的模型。 「data_file_name」列用於將圖像名稱存儲在「圖像」表中。

class Image < ActiveRecord::Base 
    set_table_name "IMAGES" 
    set_primary_key "id" 


    before_create : :rename_image_file 



    def rename_image_file 
    extension = File.extname(data_file_name).downcase 
    self.data_file_name.instance_write(:data_file_name, "#{Time.now.to_i.to_s}#{extension}") 
    end 



    belongs_to :book,:foreign_key => :book_id 



    has_attached_file :data, :path => ":rails_root/public/book_images/:book_id/:style/:basename.:extension", 
    :url => "http://www.test.org/book_test_editors/book_images/:book_id/:style/:basename.:extension", 


    :styles => { 
    :thumbnails => ["150x172#",:jpg], 
    :large => ["100%", :jpg] 
    } 



end 

當我嘗試上傳圖片,我得到以下錯誤信息:

NoMethodError in BooksController#update 

undefined method `instance_write' for "DSC02017.JPG":String 

任何幫助嗎?

請注意,我用的導軌2.3.5

回答

0

您可以調整的路徑,例如更改文件名

has_attached_file :data, :path => ":rails_root/public/book_images/:book_id/:style/:basename.#{Time.now.to_i}.:extension",