2

Lemmie は、私が Rails にかなり慣れていないことを前置きとして述べています。

私たちのアプリはペーパークリップ (3.2.4) を使用して添付ファイルを管理し、いつものように、次のような移行を生成しました。

class AddAttachmentPhotoToPhpfoxUsers < ActiveRecord::Migration
  def self.up
    change_table :phpfox_user do |t|
      t.attachment :photo
    end
  end

  def self.down
    drop_attached_file :phpfox_user, :photo
  end
end

(従来のデータベースの上に構築する必要があるため、phpfox_user と呼ばれます)

それはすべて素晴らしいです、うまくいきます。ただし、2 つのデータベースとそれらへの移行も管理する必要があるため、この投稿の提案に従って移行を再配置しました。

http://excid3.com/blog/rails-activerecord-multiple-databases-and-migrations

これがどれほど優れているかはわかりませんが、かなりきちんとしたソリューションのようで、移行をうまく整理できます。

ただし、添付ファイルの種類が見つからないため、ペーパークリップの移行は機能しません。スコープ内にないか、テーブル オブジェクトにバインドされていないと想定しています。モジュールに require 'paperclip' を追加しようとしましたが、それは役に立ちません。

add_attachment ヘルパーも使用してみましたが、それも見つかりません。

Rails 3.2.13 と Ruby 2.0.0 を使用しています。

編集:タイプミス

4

3 に答える 3

1

Ruby 2.1.5 と Rails 4.2.1 を使用しています

パートナーが paperclip gem を追加した後、git からコードをプルしました

paperclip gem をダウンロードして gemfile に追加しましたが (gemfile は異なります)、paperclip のバージョンを指定しませんでした。

そのため、「has_attached_file」(古いバージョンのペーパークリップ用) を使用しなければならなかったことに驚きました。

そうしなければならなかった:

1) schema.rb に paperclip::Schema を含める 2) 添付ファイルを has_attached_file に置き換える 3) rake db:migrate

于 2015-07-08T11:05:19.997 に答える
1

ペーパークリップ (おそらく最新バージョン) が Gemfile に存在することを確認し、実行bundle installしてから実行します。

bundle exec rake db:migrate

それはうまくいくはずです。

于 2013-07-05T10:03:36.617 に答える