外部キーを指定して新規にテーブルを作成したいのですが、以下のエラーが出ており解決できません。
registrationモデルのdbにuserのdbのpublic_uid(5桁の数字です)を外部キーとして保存したいです。
class DeviseCreateUsers < ActiveRecord::Migration[6.0] def change create_table :users do |t| ## Database authenticatable t.string :email, null: false, default: "" t.string :encrypted_password, null: false, default: "" t.string :name, null: false t.string :name_reading, null: false t.text :address, null: false t.string :phone_number, null: false t.date :datetime, null: false t.integer :body_weight, null: false t.integer :height, null: false t.integer :body_temperature, null: false t.integer :blood_type_id, null: false t.integer :allergy_id, null: false t.integer :chronic_condition_id, null: false t.integer :venue_id, null: false t.string :public_uid, null: false, unique: true ## Recoverable t.string :reset_password_token t.datetime :reset_password_sent_at ## Rememberable t.datetime :remember_created_at ## Trackable # t.integer :sign_in_count, default: 0, null: false # t.datetime :current_sign_in_at # t.datetime :last_sign_in_at # t.string :current_sign_in_ip # t.string :last_sign_in_ip ## Confirmable # t.string :confirmation_token # t.datetime :confirmed_at # t.datetime :confirmation_sent_at # t.string :unconfirmed_email # Only if using reconfirmable ## Lockable # t.integer :failed_attempts, default: 0, null: false # Only if lock strategy is :failed_attempts # t.string :unlock_token # Only if unlock strategy is :email or :both # t.datetime :locked_at t.timestamps null: false end add_index :users, :email, unique: true add_index :users, :reset_password_token, unique: true # add_index :users, :confirmation_token, unique: true # add_index :users, :unlock_token, unique: true end end
class CreateRegistrations < ActiveRecord::Migration[6.0] def change create_table :registrations do |t| t.references :public_uid, null: false, foreign_key: true t.timestamps end end end
rails db:migrate:resetを試してuserのdbを作り直したのですが、解決しません。
あなたの回答
tips
プレビュー