当我插入db时,我遇到了rails的问题:如果我设置了doc_items_attributes,则总是有一行是[] a有一个空的外键和id
class Doc < ActiveRecord::Base
attr_accessible :doc_items_attributes, :partner_info
has_many :doc_items, dependent: :destroy
accepts_nested_attributes_for :doc_items, allow_destroy:true
模型doc_items
class DocItem < ActiveRecord::Base
attr_accessible :qty, :doc_id
belongs_to :doc
数据:
params = { :doc => {
:partner_info => 'john', :doc_items_attributes => [
{ :qty => '1' },
{ :qty => '2' }
]
}}
doc = Doc.new()
doc.assign_attributes(params)
doc.doc_items.build
doc.save
doc.doc_items.length #3
表doc_items中没有数据的空行,但doc_id有值。
DOC:
id partner
1 john
doc_items:
id doc_id qty
1 1 1
2 1 2
3 1
有人可以帮忙吗?
答案 0 :(得分:1)
您正在
中构建一个新的空文档项目doc.doc_items.build
线。那是空行。
您可能希望使用构建方法来构建doc_items。
doc = Doc.create( :partner_info => "john")
doc.doc_items.build(:qty => '1')
doc.doc_items.build(:qty => '2')
doc.save
答案 1 :(得分:0)
我找到了
删除此行
doc.doc_items.build