1

我正在为我们的客户构建一个后端管理面板。

我正在集成一项功能,允许用户升级和降级他们的每月订阅,这意味着为 billing_plans 表添加一个新模型。

我一直试图在帐户和计划之间建立正确的关系。

我有一个 billing_plan 模型:

class BillingPlan < ActiveRecord::Base
  self.table_name = "billing_plans"
  has_many :accounts, primary_key: 'name', foreign_key: 'audio_billing_model'
end

和一个帐户模型:

class Account
  has_many :contacts
  belongs_to :user, primary_key: :email, foreign_key: :billing_email_address
  has_one :billing_plan, foreign_key: 'name', primary_key: 'audio_billing_model'
end

我敢肯定这可以帮助其他人,而且我很确定以前一定有人遇到过。

4

1 回答 1

0

由于您正在尝试建立has_many belongs_to关系,只需在模型上定义主键has_many,然后指示belongs_to模型将该主键用作其外键:

# app/models/billing_plan.rb
class BillingPlan < ActiveRecord::Base
    self.table_name = "billing_plans" # Seems unnecessary, as the table name by default is `billing_plans`
    has_many :accounts, primary_key: 'name'
end

# app/models/account.rb
class Account < ActiveRecord::Base # Remember to subclass `ActiveRecord::Base`
  has_many :contacts
  belongs_to :user, primary_key: :email, foreign_key: :billing_email_address
  has_one :billing_plan, foreign_key: 'name'
end
于 2013-07-09T15:41:37.527 回答