2011-01-11 4 views
0

私は、私は次のエラーを取得しています移行を実行したとき、私はしかし、セットアップにHABTM関係のためのマイグレーションファイルをしようとしている:ここでのRails 3:HABTMの移行、主キーの問題

Primary key is not allowed in a has_and_belongs_to_many join table (parts_vehicles).

は私です移行ファイル(20110111035950_create_parts_vehicles.rb):

class CreatePartsVehiclesJoinTable < ActiveRecord::Migration 
    def self.up 
    create_table :parts_vehicles, :id => false do |t| 
     t.integer :part_id 
     t.integer :vehicle_id 
    end 
    end 

    def self.down 
    drop_table :parts_vehicles 
    end 
end 

The documentation例が発生してから主キーを無効にする:id => falseを使用することを述べているが、私はまだエラーを取得しています。

+0

正しく見えます。 'rake db:migrate:status'を実行して、この移行が' down'であることを確認してください。 –

+0

はい、正しいです。私はDBを落として移行を再実行したときに作業を開始しました。 –

答えて

1

1)あなたは、クラス名は、マイグレーションの名前と同じにする必要があります:あなたは)

class CreatePartsVehicles < ActiveRecord::Migration 

2を移行しましたか?あなたのdb(rake db:drop)を落として、移住(rake db:migrate)してみてください。

+0

移行のクラス名はここでは関係ありません。 –

+0

は不明です。転ばぬ先の杖。 – sethvargo

+0

私はdb:drop:all:db:migrateとdb:seedを実行するために特別なレーキタスクを使用していましたが、明らかに問題がありました。手動で各ステップを実行すると、作業が開始されました。 –

関連する問題