这种情况有什么样的联系

时间:2013-12-24 06:12:48

标签: ruby-on-rails activerecord associations

我是RoR的新手,我正在尝试在我的应用程序中创建我的第一个关联,在Order模型和代表所有已经为该特定订单加星标的用户的星形键之间。

我最初考虑使用has_and_belongs_to_many关联,但这没有意义,因为没有很多星星从一个用户到一个订单。

话虽如此,我真的很困惑,可以使用一点方向。也许一个简单的迁移文件会让我走上正确的道路。

干杯!

2 个答案:

答案 0 :(得分:1)

假设用户可以“加注”多个订单,那么您确实需要has_and_belongs_to_many。您可以轻松强制执行任何一个用户与任何一个订单只有一个关系。

答案 1 :(得分:1)

我确实会创建一个介于订单和用户之间的表,因为订单中有许多用户键入订单,用户可以键入许多订单......

rails g migration CreateOrderUsers order:references user:references

您的order_users模型变为

belongs_to: order
belongs_to: user

然后输入你的订单模型

has_many :order_users, dependent: :destroy
has_many users, through: :order_users

并在您的用户模型中

has_many :order_users, dependent: :destroy
has_many orders, through: :order_users

希望这有帮助!