我有卡片模型,
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'
答案 0 :(得分:1)
创建关联记录的正确方法是致电create_association_name
,因此请使用create_meta_sm2
:
def add_meta
create_meta_sm2
end
更多信息:http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html