首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails -在每个模型上,我需要一个连接表吗?

Rails -在每个模型上,我需要一个连接表吗?
EN

Stack Overflow用户
提问于 2014-05-15 19:15:34
回答 1查看 77关注 0票数 0

我正在开发一个应用程序,那里将有带预订的旅游。每个旅游将在不同的日子提供,每个预订将属于一个单一的日子。我的问题是,我应该在每个模型上创建一个“日”列(旅游和预订),还是应该创建某种类型的关联和/或联接表,如下所示?

我只是不确定哪一个更合适。我的目标是为每个旅游添加一组天数,然后在预订页面上显示这些天数,并允许用户选择一天。

模型

预约

旅游

天数

days_tours (联接表)

协会

旅游has_many :days_tours

游览has_many :天,途经::days_tours

日has_many :days_tours

日has_many :旅游,途经::days_tours

预订has_one :日

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-15 20:37:13

我将使用一个带有三个外键的预订表: user_id、tour_id和day_id。

那么,该表可以作为一个连接表。

然后,根据您的需要,可以设置以下内容:

代码语言:javascript
复制
# User
  has_many :reservations
  has_many :tours, through: :reservations
  has_many :days, through: :reservations

# Tour
  has_many :reservations
  has_many :days, through: :reservations
  has_many :users, through: :reservations

# Day
  has_many :reservations
  has_many :users, through: :reservations
  has_many :tours, through: :reservations

另外,请记住,一边的每个has_many或has_one都需要另一侧的belongs_to。

代码语言:javascript
复制
# Reservation
  belongs_to :user
  belongs_to :tour
  belongs_to :day

至于has_and_belongs_to_many --通常设置起来更简单,但它的灵活性远不如has_many : more,尤其是当您加入两个以上的模型时。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23686830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档