美文网首页
has_one association如何build

has_one association如何build

作者: SecondRocker | 来源:发表于2016-06-24 00:34 被阅读51次

    实在不知道写啥了,水一篇吧~

    今天遇到一个问题,代码大致如下

    class Firm < ActiveRecord::Base
      has_many :contacts
      has_one :firm_ext
    end
    
    firm = Firm.new
    contact = firm.contacts.build
    firm_ext = firm.firm_ext.build #NoMethodError: undefined method `build' for nil:NilClass 
    

    原来has_one 不能使用 association.build,翻了下api,http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html ,发现has_one需要用build_association来new对象。

    综上,

    • has_many的对象这样初始化: object.associations.build
    • has_one的对象需要这样:object.build_association

    相关文章

      网友评论

          本文标题:has_one association如何build

          本文链接:https://www.haomeiwen.com/subject/jzdodttx.html