2011-10-19 3 views
16

Paperclipを含むRails移行をどのように書くのですか?自分のマイグレーションヘルパーのハックを書いて、ファイルシステムの変更を簡単にやり直すことができるようになりました。もちろん、実稼働環境に導入する前に、これらの種類の移行を開発(およびステージング)環境で実行してテストする必要があります。Railsの移行にはPaperclipを使用する

Paperclip migration rename, add and remove helpers
Paperclip change path migration helper(ではない、実際にデータベースの移行が、それはとにかくとてもいい合うと思います)

は、任意のより良い解決策やベストプラクティスはありますか?レイクタスクなどを作成する人もいるようですが、かなり面倒です。

答えて

37

ジェネレータがあり、このためのGEMに含ま:

レール2:

​​

レール3:

rails generate paperclip Class attachment1 (attachment2 ...) 

例を

rails generate paperclip User avatar 

を生成します。

class AddAttachmentsAvatarToUser < ActiveRecord::Migration 
    def self.up 
    add_column :users, :avatar_file_name, :string 
    add_column :users, :avatar_content_type, :string 
    add_column :users, :avatar_file_size, :integer 
    add_column :users, :avatar_updated_at, :datetime 
    end 

    def self.down 
    remove_column :users, :avatar_file_name 
    remove_column :users, :avatar_content_type 
    remove_column :users, :avatar_file_size 
    remove_column :users, :avatar_updated_at 
    end 
end 

はまたreadme

class AddAvatarColumnsToUser < ActiveRecord::Migration 
    def self.up 
    change_table :users do |t| 
     t.has_attached_file :avatar 
    end 
    end 

    def self.down 
    drop_attached_file :users, :avatar 
    end 
end 
+0

おかげで例に使用されるヘルパー・メソッドを参照してください、私はほとんど意味の移行が関与することをもう少し明確にされている必要があります既存のペーパークリップの列を変更し、ファイルシステムの変更などが必要なパスの名前を変更してください。 –

+1

ああ、この質問をチェックしてください:http://stackoverflow.com/questions/270811 5/paperclip-re-naming-files-after-theyre-saved/6335337#6335337 – Jared

+0

Ok、そのロッカーは多かれ少なかれ私のヘルパーで何をしているのですか?人々がそれをどうやってやっているかを推測する。 –

関連する問題