2012-04-09 16 views
5

IdClientフィールドにプライマリキーを設定するにはどうすればよいですか?私はすべての方法を試しましたが、エラーが発生します(レール3.0.9)...助けてくれませんか?ruby​​ on rail移行で主キーを設定する方法は?

class CreateCustomers < ActiveRecord::Migration 
    def self.up 
    create_table :customers do |t| 
     t.integer :IdCustomer 
     t.string :username 
     t.string :crypted_password 
     t.string :password_salt 
     t.string :persistence_token 
     t.string :email 
     t.string :Skype 
     t.string :ICQ 
     t.string :Firstname 
     t.string :Lastname 
     t.string :Country 
     t.string :State 
     t.string :City 
     t.string :Street 
     t.string :Building 
     t.integer :Room 
     t.string :AddressNote 
     t.date :DateOfReg 
     t.integer :CustGroup 
     t.float :TotalBuy 

     t.timestamps 
     add_index(:customers, :IdCustomer, :unique => true) 
    end 
    end 

    def self.down 
    drop_table :customers 
    end 
end 

モデル内の関係を設定する方法もありますか?

答えて

16

これを行わないでください。組み込みのidフィールドを主キーとして使用します。もしあなたがRailsを使うつもりであれば、が非常にでなければ、あなたのアプリを "Railsの方法"で構築するべきです。

あなたが本当にこれを実行したい場合は、create_table:primary_keyオプションを渡すことができます:

create_table :customers, :primary_key => :idClient do |t| 
    # ... 
end 

あなたはまた、self.primary_key = "idClient"

+0

を経由してお使いのモデルの主キーの名前を伝える必要がありますが、なぜでしょういいえ?だから私はもはや私のフィールドidclientは必要ありませんか? – byCoder

+0

@ ovatsug25あなたは私の答えを読み終えましたか?それは、私が言及した「*非常に良い理由*」によってカバーされるでしょう。 – meagar

+0

オハイオ州、私は知っている...技術を指摘してくれてありがとう...しかし、私はまだそれをやりたいとは思っていません... – ovatsug25

関連する問題