在我的belongs_to,has_one关系中似乎有些东西被打破了

时间:2012-08-20 02:05:47

标签: ruby-on-rails model

我有一个如下所示的数据模型:

customersubscription_idsetup_id作为参数。在某些情况下,customer只会有一个参数。在其他情况下,它将同时具备。

目前,如果我通过订阅流程或设置流程建立新客户,Subscription.lastSetup.last将反映最近创建的客户(customer_id等于最后一个客户创建了)

但是,我遇到Customer.setup_idCustumer.subscription_id在所有情况下都为零的问题。

以下是来自subscription.rbsetup.rb的代码:

class Subscription < ActiveRecord::Base
  attr_accessible :status, :customer_id
  belongs_to :customer
end


class Setup < ActiveRecord::Base
  attr_accessible :status, :customer_id
  belongs_to :customer
end

customer.rb

class Customer < ActiveRecord::Base
  attr_accessible :email, :name, :stripe_token, :subscription_id, :setup_id, :phone, :plan
  has_one :subscription
  has_one :setup
end

我不确定我在这里做错了什么,但如果三个数据模型能够正确地相互通信,我会很高兴。

修改setupsubscription都属于:user而不是:customer,这是不是很糟糕?

编辑2 :更新了setup.rb和subscriptions.rb的代码,以正确反映当前的数据模型。 customer.rb仍然无法识别正确的setup_idsubscription_id

1 个答案:

答案 0 :(得分:1)

class Subscription < ActiveRecord::Base
  attr_accessible :status, :customer_id
  belongs_to :customer
end

class Setup < ActiveRecord::Base
  attr_accessible :status, :customer_id
  belongs_to :customer
end

class Customer < ActiveRecord::Base
  attr_accessible :email, :name, :stripe_token, :phone, :plan
  has_one :subscription
  has_one :setup
end

customer = Customer.first
customer.subscription # Instance of Subscription that belongs to customer
customer.setup # Instance of Setup that belongs to customer