有没有办法让Rails模型将另一个模型作为属性?
E.g。我有一个带有地址属性的User模型,User模型中的address属性是它自己的类。
User Model
----------
lastName:string
firstname:string
address: addressModel
Address Model
-------------
street: string
city:string
zipCode:integer
答案 0 :(得分:1)
是的,你可以使用associations:
class User < ActiveRecord::Base
has_one :address
end
class Address < ActiveRecord::Base
belongs_to :user
end
请注意,为此,您需要在地址表中添加user_id
字段。
这将神奇地为您的用户对象提供Address类型的地址属性。它还允许您为用户分配地址。 E.g:
address = Address.find(1)
user = User.find(1)
user.address = address
user.save
user.address.class # => Address
user.address.id # => 1
这是用户和地址之间1:1关联的示例。查看我上面链接的指南,了解其他类型的关联。