2010-02-18 101 views
0

我有奇怪的現象 - 當我試圖更新模式,即可以包含由回形針用下面的代碼,我看到的錯誤連接(我使用的是Postgres爲DB):回形針和Postgres

>> u.profile.avatar = nil 
=> nil 
>> u.save! 
ActiveRecord::RecordInvalid: Avatar file size file size must be between 0 and 1048576 bytes. 
     from /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/validations.rb:1090:in `save_without_dirty!' 
     from /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/dirty.rb:87:in `save_without_transactions!' 
     from /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/transactions.rb:200:in `save!' 
     from /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/connection_adapters/abstract/database_statements.rb:136:in `transaction' 
     from /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/transactions.rb:182:in `transaction' 
     from /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/transactions.rb:200:in `save!' 
     from /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/transactions.rb:208:in `rollback_active_record_state!' 
     from /opt/local/lib/ruby/gems/1.8/gems/activerecord-2.3.5/lib/active_record/transactions.rb:200:in `save!' 
     from (irb):8 
     from :0 

這種情況很奇怪,因爲它正在處理sqlite3。

我的模型包括:

has_attached_file :avatar, 
    :path => ':rails_root/public/assets/images/avatars/:id/:style/:basename.:extension', 
    :url => ApplicationSettings.assets_host_url + '/assets/images/avatars/:id/:style/:basename.:extension', 
    :default_style => :thumb, 
    :default_url => ':default_url', 
    :whiny_thumbnails => true, 
    :styles => { 
     :tiny => ['32x32>', :png], 
     :small => ['75x75>', :png], 
     :regular => ['100x100>', :png], 
     } 

    validates_attachment_content_type :avatar, :content_type => ['image/jpeg', 'image/pjpeg', 'image/png', 'image/gif'] 
    validates_attachment_size :avatar, :less_than => 1.megabytes 

你能幫助我嗎?

+1

見http://stackoverflow.com/questions/2045212/rails-paperclip-validating-attachment-size-when-it-shouldnt-be – 2010-02-18 17:07:30

回答

1

Alison R.發佈瞭解決方案的評論,但讓我寫一個完整的解決方案。

試試這個:

validates_attachment_size :avatar, :less_than => 1.megabytes, 
    :unless => Proc.new {|model| model.avatar } 
+0

謝謝,它的工作:) – 2010-02-19 08:00:03