gpt4 book ai didi

ruby-on-rails - 默认显示嵌套属性的表单域

转载 作者:太空宇宙 更新时间:2023-11-03 16:06:19 25 4
gpt4 key购买 nike

我正在尝试构建一个具有嵌套属性的表单,在我看来 views/pedidos/new.html.erb默认情况下,我想向 pessoa 显示一组字段,向 produto 显示一组字段。在我的 PedidosController 中,我使用了 pessoa = @pedido.build_pessoa它完美地工作,我的表单呈现 pessoa 字段,但是对于 produto 我试过 produto = @pedido.build_produtos它说undefined method 'build_produtos' for #<Pedido id: nil, created_at: nil, updated_at: nil>

这是我的模型和我的 Controller (使用脚手架生成)

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

最佳答案

如果关系是has_many,你可以这样构建它:@pedido.produtos.build

因为 has_one 像您所做的那样使用 build_[association] 作为前缀。

有点棘手,但一旦你知道发生了什么就很简单。

关于ruby-on-rails - 默认显示嵌套属性的表单域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13095106/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com