has_one association 어떻게build

598 단어
도저히 뭘 썼는지 모르겠다.
오늘 문제에 부딪혔는데, 코드는 대체로 다음과 같다.
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 

원래hasone에서 association을 사용할 수 없습니다.build,api를 뒤집으면,http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html,has 발견one은buildassociation에서 새 대상을 가져옵니다.
종합하여
  • has_many의 대상은 이렇게 초기화됩니다:object.associations.build
  • has_원 대상은 다음과 같습니다:object.build_association
  • 좋은 웹페이지 즐겨찾기