gpt4 book ai didi

ruby-on-rails - 事件管理员,不能与父级同时创建嵌套资源

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

在我的应用程序中,Invoice 有_many Item。因此,在我的事件管理 UI 中,我希望能够创建发票,同时创建其项目。

但我只能在 invoice 使用事件管理中的 Edit Invoice 按钮创建后添加 items。尝试一起创建它们不会将我从 New Invoice 页面引导到任何地方。并且没有显示任何错误。有人可以帮我解决这个问题吗?

我的 app/admin/invoice.rb

中有以下表单结构
permit_params :paid, :due, :customer_id,
items_attributes: [:price, :description, :invoice_id, :purchased_product_id]

form multipart: true do |f|
f.inputs do
input :customer
input :due
input :paid, as: :radio
end
f.inputs "Items" do
f.has_many :items do |item|
item.input :price
item.input :description
item.input :purchased_product
end
end
f.actions
end

我在我的 Invoice 模型中添加了 accepts_nested_attributes_for,如下所示:

class Invoice < ActiveRecord::Base
belongs_to :customer
has_many :items

accepts_nested_attributes_for :items, allow_destroy: true

validates :customer, presence: true

我正在使用 Rails 4 和 activeadmin '~> 1.0.0.pre1'

最佳答案

问题是处理我在 Item 模型中的验证。我的 Item 模型类

中有以下验证规则
validates :price, :invoice, presence: true

这是说为了创建一个 item,它必须有一个 invoice 连接。但是由于在invoice及其包含的items的创建过程中,invoice还没有保存到数据库中。 items 找不到要连接的 invoice,验证失败。

问题通过移除invoice的存在验证来解决,以

validates :price, presence: true

关于ruby-on-rails - 事件管理员,不能与父级同时创建嵌套资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30300612/

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