11

IdClient フィールドの主キーを設定するにはどうすればよいですか? すべての方法を試しましたが、エラーが発生します (rails 3.0.9)... 助けていただけますか?

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

また、モデルでリレーションを設定する方法は?

4

1 に答える 1

25

これをしないでください。組み込みidフィールドを主キーとして使用します。Railsを使用する場合は、正当な理由がない限り、アプリを「Railsway」で構築する必要があります。

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

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

また、モデルに主キーの名前を経由して伝える必要がありますself.primary_key = "idClient"

于 2012-04-09T20:28:35.343 に答える