0

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

例如,我有一个带有地址属性的用户模型,用户模型中的地址属性是它自己的类。

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

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

1 回答 1

1

是的,您可以为此使用关联

class User < ActiveRecord::Base
  has_one :address
end

class Address < ActiveRecord::Base
  belongs_to :user
end

请注意,要使其正常工作,您需要user_id在地址表中有一个字段。

这将神奇地为您的用户对象提供地址类型的地址属性。它还允许您为用户分配地址。例如:

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

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

这是用户和地址之间 1:1 关联的示例。查看我上面链接的指南,了解有关其他类型关联的说明。

于 2013-04-10T04:12:23.627 回答