web-dev-qa-db-ja.com

方法Rails Paperclipを含む移行

人々はどのように彼らのRails移行を含む ペーパークリップ )を書くのですか?また、必要なファイルシステムの変更も行います。もちろん、本番環境にデプロイする前に、開発(およびステージング)環境でこれらの種類の移行をテスト実行する必要があります。

ペーパークリップの移行の名前の変更、ヘルパーの追加と削除
ペーパークリップ変更パス移行ヘルパー (実際にはデータベースの移行ではありませんが、とにかく非常に適していると思います)

より良い解決策やベストプラクティスはありますか?かなり面倒なレーキタスクなどを作成している人もいるようです。

16
Mattias Wadman

このためのgemにはジェネレーターが含まれています:

Rails 2:

script/generate Paperclip Class attachment1 (attachment2 ...)

Rails 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
37
Jared