2012-04-09 23 views
5

IdClient alanım için birincil anahtarı nasıl ayarlayabilirim? Tüm yöntemleri denedim, ama hatalar alıyorum (3.0.9). Bana yardım edebilir misiniz?Raylar üzerinde geçişte birincil anahtar nasıl ayarlanır?

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 

Ayrıca ilişki modelde nasıl ayarlanır?

cevap

16

Bunu yapma. Yerleşik id alanını birincil anahtar olarak kullanın. Eğer Rails kullanacaksanız, çok iyi bir nedeniniz olmadıkça uygulamanızı "Rails way" yapmalısınız.

Eğer gerçekten yapmak istiyorsanız, iletebilirsiniz bir :primary_key seçenek create_table için:

Ayrıca aracılığıyla modeli birincil anahtarın adı anlatmak gerekir
create_table :customers, :primary_key => :idClient do |t| 
    # ... 
end 

self.primary_key = "idClient"

+0

ama neden yok hayır? Yani artık benim alanımın ihtiyacına ihtiyacım yok mu? – byCoder

+0

@ ovatsug25 cevabımı okumayı bitirdiniz mi? Bu, bahsettiğim "* çok iyi sebep" ile karşılanacaktır. – meagar

+0

ohhh, biliyorum ... tekniği işaret ettiğin için teşekkürler ... ama hala bunu yapmak istemiyorum ... – ovatsug25

İlgili konular