2015-03-03 116 views
0

嗨我很活跃的记录新,我不知道如何建立这种关系。Rails:从一个模型到另一个模型的两个关系(别名)

我有模型orders和模型addresses

的订单可以有很多shipping_addresses,也可以有很多invoice_addresses

我怎么能建立这种关系?我的意思是invoice_addresses和shipping_addresses基本上是相同的,但我需要从订单分别让他们

order.shipping_addresses 
order.invoice_addresses 

我不想创造更多的车型,我只需要知道如何只用order建立这种关系和address模型

感谢您的帮助

回答

2

可以定义多个has_many同一类别如下:

# app/models/order.rb 

class Order < ActiveRecord::Base 
    has_many :shipping_addresses, class_name: 'Address' 
    has_many :invoice_addresses, class_name: 'Address' 
    ... 
end 

如果您想为这些关联添加条件,请参阅Active Record Associations了解详情。

+0

嗨,非常感谢你,我只是有另一个问题,Address模型中的迁移应该如何?只有一个'order_id'列?和rails会知道范围是什么? – SsouLlesS 2015-03-03 03:10:30

+0

和地址模型我只需要定义'belongs_to:order'? – SsouLlesS 2015-03-03 03:13:28

+0

你真的想要“订购has_many地址”或“订单belongs_to送货地址”和“订单属于发票地址”。 – vee 2015-03-03 03:20:33

相关问题