2017-11-15 13 views
1

レールジェネレータを使用してdbテーブルを作成する際に問題があります。Railsのマイグレーションリファレンスの名前の規則

私はテーブルpersonal_dataを指定して正常に動作します。

class CreatePersonalData < ActiveRecord::Migration 
def change 
    create_table :personal_data do |t| 
    t.string :name 
    t.string :lastName 
    t.string :dni 
    t.string :contact 
    t.references :user, index: true, foreign_key: true 

    t.timestamps null: false 
    end 
end 
end 

しかし、私は個人的なデータ

class CreateMerchants < ActiveRecord::Migration 
def change 
    create_table :merchants do |t| 
    t.string :storeName 
    t.references :personal_data, index: true, foreign_key: true 
    t.references :category, index: true, foreign_key: true 
    t.string :webPage 
    t.string :city 

    t.timestamps null: false 
    end 
end 
end 

とを参照して、別のテーブルを作成し、実行ではなくpersonal_data_id移行を求めての移行がpersonal_datum_idを探し、スローと例外。

PG::UndefinedColumn: ERROR: no existe la columna «personal_datum_id» referida en la llave foránea : ALTER TABLE "merchants" ADD CONSTRAINT "fk_rails_e4239c30dc" FOREIGN KEY ("personal_datum_id") REFERENCES "personal_data" ("id")

私は英語

column "personal_datum_id" referenced in foreign key constraint does not exist

+1

を実行します。テーブル名は複数です。 「データ」は複数で、「データム」は単数であると言えます。したがって、私がidを検索すると、それは 'personal_datum_id'のために行きます。テーブル名がpersonal_datasなのかどうかはわかりませんが、エラーはありません。 –

答えて

1

にエラーを翻訳し、私はそれが混乱している理由はわからないが、おそらくあなたはPERSONAL_DATAの複数がPERSONAL_DATAあるように、あなたの抑揚を設定することができますか?ファイルで

ます。config /初期化子/ inflections.rb

ActiveSupport::Inflector.inflections do |inflect| 
    inflect.irregular 'personal_data', 'personal_data' 
end 
1

は、あなたのpersonal_data.rbモデルでself.table_name = 'personal_data'を追加し、これはRailsが仕事の方法であると思われ@Davit移行

関連する問題