如何使对象成为rails中另一个对象的属性

时间:2013-04-10 04:10:11

标签: ruby-on-rails-3 oop database-design model

有没有办法让Rails模型将另一个模型作为属性?

E.g。我有一个带有地址属性的User模型,User模型中的address属性是它自己的类。

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

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

1 个答案:

答案 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关联的示例。查看我上面链接的指南,了解其他类型的关联。