2013-07-25 47 views
0

我在使用Paperclip處理我的VPS時遇到了一些麻煩。它的工作原理局部精細和我的第一個VPS,但是當我嘗試rake db:migrate第二VPS,我得到下面的輸出:未定義的方法`has_attached_file`使用Paperclip和Rails

[email protected]:/home/rails# rake db:migrate 
== CreateGroups: migrating =================================================== 
-- create_table(:groups) 
    -> 0.0019s 
-- add_column(:discussions, :group_id, :integer) 
    -> 0.0007s 
-- add_column(:memberships, :memberships_id, :integer) 
    -> 0.0006s 
-- has_attached_file(:photo, {:styles=>{:original=>"400x200>", :tile=>"200x200#"}, :url=>"/assets/images/groups/:id/:style/:basename.:extension", :path=>":rails_root/public/assets/images/groups/:id/:style/:basename.:extension", :default_url=>"/assets/:style/missing-group-image.jpg"}) 
rake aborted! 
An error has occurred, this and all later migrations canceled: 

undefined method `has_attached_file' for #<CreateGroups:0x0000000342cbf8>/usr/local/rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.8/lib/active_record/migration.rb:465:in `block in method_missing' 
... 

我到目前爲止已經完成設立第二個VPS是:

  • 成立麒麟+ Nginx的(他們似乎是工作的罰款)
  • apt-get install git
  • apt-get install imagemagick
  • bundle install(和回形針是我的Gemfile)
  • 重新啓動我的殼
  • 重新啓動的VPS

這一切之後,我仍然得到上面的錯誤,每當我嘗試遷移。任何接下來要做什麼的想法?

+0

哪個版本的回形針? –

回答

1

我想你並沒有完全遵循Paperclip安裝指南。你應該有以下遷移(從回形針自述複製,可能會略有不同,你)

class AddAvatarColumnsToUsers < ActiveRecord::Migration 
    def self.up 
    add_attachment :users, :avatar 
    end 

    def self.down 
    remove_attachment :users, :avatar 
    end 
end 

,你顯然放在那裏的東西,應該是在你模型。

+0

我在這個VPS上的遷移與我在本地和我的開發VPS上的遷移完全一樣,並且Paperclip在那裏工作時沒有問題;我不認爲失蹤遷移是問題。 我也有一個AddAttachmentPhotoToProjects遷移以及AddAttachmentFileToProjectFiles遷移包括(我通過自述文件提到的Paperclip生成器)。 – Lee

+0

你有這個' - has_attached_file(:photo,{:styles => {:original =>「400x200>」,:tile =>「200x200#」},:url =>「/ assets/images/groups /: id// style /:basename。:extension「,:path =>」:rails_root/public/assets/images/groups /:id /:style /:basename。:extension「,::default_url =>」/ assets/style/missing-group-image.jpg「}) '在遷移中,所以請不要告訴我你的遷移是好的。 –

0

事實證明,我的問題比我的環境更不完整的代碼。結果發現我的一個隊友把一些不完整的代碼推給了我們的GitHub倉庫,我沒有注意到它。

通過做git logs,選擇正確的提交,然後git checkout (...),我能夠遷移和種子我的數據庫,並按預期運行我的應用程序。

我花了一個多小時試圖弄清楚,但希望它可以幫助別人,我感到非常愚蠢。 :)

相關問題