在我的应用中,Invoice
has_many Item
。因此,在我的主动管理界面中,我希望能够创建发票,同时创建其项目。
但我只能在使用有效管理员中的items
按钮创建invoice
后添加Edit Invoice
。尝试一起创建它们不会引导我从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
我在accepts_nested_attributes_for
模型中添加了Invoice
,如下所示:
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'
答案 0 :(得分:1)
问题是要在我的>>> df2.show()
ID EndDateTime StartDateTime Duration
X01 2014-02-13T12:36:... 2014-02-13T12:31:... 258
X02 2014-02-13T12:35:... 2014-02-13T12:32:... 204
X03 2014-02-13T12:36:... 2014-02-13T12:32:... 228
XO4 2014-02-13T12:37:... 2014-02-13T12:32:... 268
XO5 2014-02-13T12:36:... 2014-02-13T12:33:... 202
模型中处理我的验证。我的Item
模型类
Item
这表示为了创建validates :price, :invoice, presence: true
,必须连接item
。但是因为在invoice
及其包含invoice
的创建过程中,items
已保存到数据库中。 invoice
找不到要连接的items
,验证失败。
通过删除invoice
的状态验证来解决问题
invoice