Rails中的嵌套属性3

任何人都可以通过Rails 3中的嵌套属性来引导我吗?

我有两个模型:证书和保管人,相关如下:

证书型号:

class Certificate < ActiveRecord::Base belongs_to :shareholder belongs_to :custodian belongs_to :issuer accepts_nested_attributes_for :custodian, :shareholder, :issuer end 

证书控制器:

 class CertificateController < ApplicationController def issue @certificate = Certificate.new @certificate.custodian.build end end 

我的看法:

  {:action => 'testing'}) do |f| -%> 


'Working....' %>

现在,出于某种原因,在第4行的控制器中: @certificate.custodian.build

我收到了这个错误: undefined method 'build' for nil:NilClass

任何人都可以帮忙吗?

accepts_nested_attributes_for应该在一对多关系中站在一边。

 class Custodian < ActiveRecord::Base has_many :certificates accepts_nested_attributes_for :certificates end 

所以,在你看来,应该没有fields_for:custodian,它是错误的一面。 如果必须从该视图构建证书,则必须列出可用的保管人,可能在选择框中。

有了belongs_to,它应该是

 @certificate.build_custodian 

这条线

 <% f.fields_for :custodian do |custodian| -%> 

应该

 <%= f.fields_for :custodian do |custodian| -%>