Ruby on rails简单关系has_and_belongs_to_many

时间:2017-02-09 09:14:38

标签: ruby-on-rails ruby model relationship has-and-belongs-to-many

我有一个简单的rails应用程序,我试图建立两个模型之间的关系。

我有计划模型和订阅模型。

订阅只有1个计划,但计划可以属于许多订阅。

因为没有属于很多关系我猜测创建它的最好方法是使用has_and_belongs_to_many和plan_subscription的连接表 - 这是正确的吗?

假设这是正确的,我如何确保我的订阅只创建了一个计划?

我目前的代码如下:

class Subscription < ApplicationRecord
  has_and_belongs_to_many :plans
end

class Plan < ApplicationRecord
  has_and_belongs_to_many :subscriptions
end

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

has_and_belongs_to_many关联是多对多关联,你写的订阅只会有1个计划,计划可以属于多个订阅,所以在这种情况下你的关联是错误的。你的关联会是这样的:

class Plan < ActiveRecord::Base
  has_many :subscriptions
end

class Subscription < ActiveRecord::Base
  belongs_to :plan
end