我计划使用rails应用程序,允许用户在其个人地址或针对保管库指定的任何其他附加地址(位置)列出一个/多个保险柜。在我继续生成模型之前,我想确保理解三个模型之间需要建立的关联。这里是我手动输入的代码表示,用于描述所需的关联。
class User < ActiveRecord::Base
has_many :vaults
end
class Vault < ActiveRecord::Base
belongs_to :user
has_one :address
end
class Address < ActiveRecord::Base
belongs_to :user
end
答案 0 :(得分:0)
您的数据库看起来没问题,下面很少考虑:
class User < ActiveRecord::Base
has_many :vaults
has_many :addresses #(optional)if you want to fetch addresses directly
end
class Vault < ActiveRecord::Base
belongs_to :user
has_one :address
end
class Address < ActiveRecord::Base
belongs_to :user #(optional) if you want to fetch user directly
belongs_to :vault
end
数据库要求:
地址表必须包含user_id(可选)和vault_id。
保险库表必须包含user_id。