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,你应该以“Rails 方式”构建你的应用程序,除非你有充分的理由不这样做。

如果你真的想这样做,你可以将一个:primary_key选项传递给create_table

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

您还需要通过以下方式告诉模型其主键的名称self.primary_key = "idClient"

于 2012-04-09T20:28:35.343 回答