我正在尝试构建一个具有嵌套属性的表单,在我看来,views/pedidos/new.html.erb
我想默认显示一组字段到pessoa和一个到produto。在我使用过的PedidosController中,它运行良好,我的表单呈现pessoa字段,但对于我尝试过的产品,它说pessoa = @pedido.build_pessoa
produto = @pedido.build_produtos
undefined method 'build_produtos' for #<Pedido id: nil, created_at: nil, updated_at: nil>
这是我的模型和控制器(使用脚手架生成)
class Pedido < ActiveRecord::Base
attr_accessible :pessoa_attributes, :produtos_attributes
has_one :pessoa
has_many :produtos
accepts_nested_attributes_for :pessoa, :produtos, allow_destroy: true
end
class Pessoa < ActiveRecord::Base
attr_accessible :email, :nome, :telefone
belongs_to :pedido
end
class Produto < ActiveRecord::Base
attr_accessible :nome, :quantidade
belongs_to :pedido
end
class PedidosController < ApplicationController
def new
@pedido = Pedido.new
1.times do
pessoa = @pedido.build_pessoa
produto = @pedido.build_produtos
end
respond_to do |format|
format.html # new.html.erb
format.json { render json: @pedido }
end
end
end