如何使一个对象在轨道中的另一个对象的属性
问题描述:
有没有办法让一个Rails模型有另一个模型作为属性?如何使一个对象在轨道中的另一个对象的属性
E.g.我有一个带有地址属性的用户模型,用户模型中的地址属性是它自己的类。
User Model
----------
lastName:string
firstname:string
address: addressModel
Address Model
-------------
street: string
city:string
zipCode:integer
答
是的,你可以使用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关联的示例。查看我上面链接的指南,了解其他类型关联的解释。
太棒了,是的,我不知道它是否必须是一个关联,或者如果你可以使属性的类型另一类。我跟踪user_id应自动生成模型的轨道生成器。感谢您的链接,这将有用。 – 2013-04-10 04:53:00