2013-04-10 74 views
0

有沒有辦法讓一個Rails模型有另一個模型作爲屬性?如何使一個對象在軌道中的另一個對象的屬性

E.g.我有一個帶有地址屬性的用戶模型,用戶模型中的地址屬性是它自己的類。

User Model 
----------  
lastName:string     
firstname:string    
address: addressModel 

Address Model 
------------- 
street: string 
city:string 
zipCode:integer 

回答

1

是的,你可以使用associations爲:

class User < ActiveRecord::Base 
    has_one :address 
end 

class Address < ActiveRecord::Base 
    belongs_to :user 
end 

需要注意的是這個工作,你需要在你的地址表中的user_id場。

這會奇蹟般地給你的用戶對象一個Address類型的地址屬性。它還允許您爲用戶分配地址。例如:

address = Address.find(1) 
user = User.find(1) 
user.address = address 
user.save 

user.address.class # => Address 
user.address.id # => 1 

這是用戶和地址之間1:1關聯的示例。查看我上面鏈接的指南,瞭解其他類型關聯的解釋。

+0

太棒了,是的,我不知道它是否必須是一個關聯,或者如果你可以使屬性的類型另一類。我跟蹤user_id應自動生成模型的軌道生成器。感謝您的鏈接,這將有用。 – 2013-04-10 04:53:00

相關問題