ruby-on-rails – 可以在Ruby on Rails中描述这种关系吗?
发布时间:2020-12-17 03:25:59 所属栏目:百科 来源:网络整理
导读:这是一个可以在 Ruby on Rails的ActiveRecord模型关系中描述的关系吗? Customer Address =================== ========= Billing_Address_Id ------} }---|- AddressId Shipping_Address_Id ------} 这样我就可以拥有如下所示的数据: 地址: Id | Addr | C
这是一个可以在
Ruby on Rails的ActiveRecord模型关系中描述的关系吗?
Customer Address =================== ========= Billing_Address_Id >------} }---|- AddressId Shipping_Address_Id >------} 这样我就可以拥有如下所示的数据: 地址: Id | Addr | City | State | Zip | ================================================ 1 | 123 Main | New York | NY | 99999 | 2 | 200 2nd Street | New York | NY | 99999 | 3 | 300 3rd Street | Albany | NY | 99998 | 4 | PO Box 4 | Albany | NY | 99998 | 顾客: Id | Name | Billing_Address_Id | Shipping_Address_Id | ======================================================= 1 | Bob | 1 | 1 | 2 | Al | 2 | 1 | 3 | Joe | 3 | 4 | 我想在他们自己的表中存储地址,因为数据可能在客户之间共享(特别是送货地址).但对于任何给定的客户,甚至只有两个地址. 除非没有别的办法,否则我想避免多对多的关系. 解决方法
给定这样的表定义:
create_table :addresses do |t| t.string :street t.string :city t.string :state t.string :zip t.timestamps end create_table :customers do |t| t.string :name t.references :shipping_address t.references :billing_address t.timestamps end 您可以将结算和送货地址与您的客户相关联,如下所示: class Customer < ActiveRecord::Base belongs_to :shipping_address,:class_name => "Address" belongs_to :billing_address,:class_name => "Address" end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |