2012-01-05 26 views
20

belongs_to ben 2 modellerRaylar modeli has_many, ilişkilerin

class User < ActiveRecord::Base 
    has_many :products 
end 

class Product < ActiveRecord::Base 
    belongs_to :user 
end 

var ben Ürün tabloya bir sütun user_id eklemeniz veya raylar varsayılan olarak eklese musunuz?

cevap

47

Product modeline user_id sütununu manuel olarak eklemeniz gerekir. Henüz modelinizi oluşturmadıysanız, referans listesini sütun listesine model üreticisine ekleyin. senin Product model zaten yapmanız gerekenleri varsa

rails generate model Product name:string price:decimal user:references

Veya geçerli: Örneğin: Düzgün products-user_id sütun eklemek Taşımayı üretecektir

rails g migration addUserIdToProducts user_id:integer

tablo. Doğru olarak adlandırılan sütun ile (user_id), Rails sizin yabancı anahtarınız olduğunu bilir.

+0

hey, 'postgresql' kullanıyorum ve bahsettiğiniz ilk yöntemi kullanarak model oluşturma işlemini yaptım. 'user: references' kullanarak. Şimdi 'user' model nesnesini silmeye çalıştığımda bana "PG :: ForeignKeyViolation:" hatası veriyor. Beklentim, bir kullanıcıyı sildiğimde '' '' '' altındaki '' 'ürünler '' silinmelidir. Not: ''' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ile bağımlı: '' im '' adlı kullanıcım var Ben raylarda yeni başlayan biriyim :) –

İlgili konular