Rails - 一个用户多个地址

Evo*_*o_x 4 ruby-on-rails

我有一个用户模型

class User < ActiveRecord::Base
    attr_accessible :email, :password, :password_confirmation, :remember_me, :first_name, :last_name, :shipping_address_id; :billing_address_id
end
Run Code Online (Sandbox Code Playgroud)

和地址模型

class Address < ActiveRecord::Base
    attr_accessible :country_id, :city, :plz, :street, :streetnr, :first_name, :last_name
end
Run Code Online (Sandbox Code Playgroud)

我想通过活动记录关联做什么:每个用户都有billing_address和shipping_address.我可以创建一个关系,以便我可以像user.billing_address一样访问这些关系吗?

ken*_*ngo 6

您可以在belongs_to关联中添加类名和外键.

class User < ActiveRecord::Base
    attr_accessible :email, :password, :password_confirmation, :remember_me, :first_name, :last_name, :shipping_address_id; :billing_address_id
    belongs_to :billing_address, class_name: :Address, foreign_key: :billing_address_id
    belongs_to :shipping_address, class_name: :Address, foreign_key: :shipping_address_id
end
Run Code Online (Sandbox Code Playgroud)

然后你可以访问像这样的地址

user.billing_address
user.shipping_address
Run Code Online (Sandbox Code Playgroud)

  • 用户所属:地址,很奇怪. (3认同)