2013-04-10 114 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

相关问题