これは、PostgresでActiveRecordを使用しているレールプロジェクトです。カスタムユニークIDへの参照のレール
こんにちは私は2つのCSVで作業しています。 1つは州内に登録されているすべての有権者の記録です。このテーブルを作成したとき、生成された一意のIDをインデックス付きの列として使用せず、代わりに既に割り当てられた状態state_voter_idを使用しました。有権者テーブルのスキーマ:
create_table "voters", id: false, force: :cascade do |t|
t.string "state_voter_id", null: false
t.string "county_voter_id"
t.string "first_name"
t.string "middle_name"
t.string "last_name"
t.string "suffix"
t.string "birthdate"
t.string "gender"
t.string "add_st_num"
t.string "add_st_name"
t.string "add_st_type"
t.string "add_unit_type"
t.string "add_pre_direction"
t.string "add_post_direction"
t.string "add_unit_num"
t.string "city"
t.string "state"
t.string "zip"
t.string "county"
t.string "precinct"
t.string "leg_dist"
t.string "cong_dist"
t.string "reg_date"
t.string "last_vote"
t.string "status"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["city"], name: "index_voters_on_city"
t.index ["first_name"], name: "index_voters_on_first_name"
t.index ["last_name"], name: "index_voters_on_last_name"
t.index ["state_voter_id"], name: "index_voters_on_state_voter_id", unique: true
t.index ["zip"], name: "index_voters_on_zip"
end
私はこれは私が試したの移行である 有権者テーブルへの参照としてstate_voter_idを含む投票レコードの新しいテーブル/モデルに追加したい知っている:
def change
create_table :votes do |t|
t.references :voter, column: :state_voter_id
t.string :county
t.string :date
t.timestamps
end
私は移行を実行したときに移行しましたが、有権者レコードを開始しようとしたときに次のエラーが発生しました:ActiveRecord::UnknownPrimaryKey: Unknown primary key for table voters in model Voter
。私はまた、テーブルが大きなものを取るように設定されていたことに気づいた。
私は、英数字の文字列であるstate_voter_idの投票者を正しく参照するように設定するにはどうすればよいですか?線に沿って