1

Railsの移行を行いたいのですが、列名をexternal_idのようなものにしたいのですが、externalを使用したモデルは必要ありません。Railsはデフォルトで、_idをサフィックスとして見ると、外部キーの関連付けを探し、存在しない場合は移行がキャンセルされると思います。そのための解決策は何ですか。私は持っています

def self.up
    create_table :external_mappings do |t|
      t.string :external_name
      t.integer :external_id

      t.timestamps
    end
  end

ご協力いただきありがとうございます


私がそれを作るときt.integer:externalId移行は動作します。external_idがforeignキー参照を探していると思わせるので、foriegnキー参照を抑制する方法はありますか。レール2.3.5を使用しています

4

3 に答える 3

0

任意の列に_id名前を付けて外部キーを参照すること_idもできるので、気軽に続けてください。これは、Rails が をターゲットにするために依存している規則にすぎmodel-name_idませんが、問題なく別の方法で定義することもできます。

于 2013-03-12T18:26:04.070 に答える
0

いいえ、モデルが存在しないため、Rails は移行をキャンセルしません。

于 2013-03-12T18:28:09.490 に答える
0

元のポスターは、足場と「参照」タイプを使用して新しいモデルを作成したのだろうか. その場合、移行は外部キーの作成中に失敗します。

それ以外の場合、それが単なる整数である場合は、受け入れ可能な列名の末尾に _id を追加しても問題はありません。

于 2013-03-12T18:50:49.050 に答える