无法访问模型内​​的关联

时间:2017-02-18 04:24:57

标签: ruby-on-rails

我有卡片模型,

class Card < ApplicationRecord
  has_one :meta_sm2
  after_create :add_meta

  private

  def add_meta
    self.meta_sm2.create()
  end
end

创建card对象后,我得到一个NoMethodError,其中指出create内的add_meta函数不存在,因为self.meta_sm2为零。< / p>

class MetaSm2 < ApplicationRecord
end

错误,

NoMethodError: undefined method `create' for nil:NilClass
    from /Users/li-xinyang/Desktop/XX_API/app/models/card.rb:37:in `add_meta'

1 个答案:

答案 0 :(得分:1)

创建关联记录的正确方法是致电create_association_name,因此请使用create_meta_sm2

def add_meta
  create_meta_sm2
end

更多信息:http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html