我有一个奇怪的错误,刚出现我的rails应用程序,我无法弄清楚。我最近为现有模型添加了一个新关联,现在我之前的关联不想正常工作。
#=> self.user
#=> <# user.id => "1" ...
#=> self.transactions
#=> [<# transaction_id => "1"...
#=> self.credit_plan
#=> nil
所以前两个关联工作正常,但由于某种原因,credit_plan返回nil并且崩溃了我现有的所有工作代码。这是我的唱片协会。
class Order < ActiveRecord::Base
belongs_to :user
belongs_to :credit_plan
has_many :transactions, :class_name => "OrderTransaction"
class CreditPlan < ActiveRecord::Base
scope :active, where({:is_active => true})
scope :inactive, where({:is_active => false})
has_many :orders, :class_name => "Order"
class OrderTransaction < ActiveRecord::Base
belongs_to :order
serialize :params
答案 0 :(得分:1)
好吧伙计们,我明白了。如果我发布了更多我的文件的上下文,我相信有人会想出来并尽快帮助我。
所以基本上,当我为信用卡表单设置我的虚拟属性时,我意外地通过添加:credit_plan
作为属性来踩踏我自己的名称空间,这会覆盖关联。
class Order < ActiveRecord::Base
belongs_to :user
belongs_to :credit_plan
has_many :transactions, :class_name => "OrderTransaction"
validates_presence_of :credit_plan_id, :user
attr_accessor :first_name, :last_name, :card_type, :credit_card,
:number, :verification_value, :promotional_code, :expires_on,
:credit_plan # << This will override associations, delete to fix.
validate :validate_card, :on => :create