【发布时间】:2016-02-16 15:37:42
【问题描述】:
我正在使用
class Mother < ActiveRecord::Base
has_many :boys
accepts_nested_attributes_for :boys, reject_if: :all_blank, allow_destroy: true
end
和
class Boy < ActiveRecord::Base
belongs_to :mother
attr_accessor :mother_id
end
因为我无法修改 Boys 表的列。
现在我在 Rails 中创建嵌套表单,但是当我去拯救 Mother and Boys 时,它会说:
ActiveModel::MissingAttributeError - can't write unknown attribute `mother_id`:
这很正常,因为mother_id 列不存在。但是我不需要保存Mother模型,只需要保存我使用gem cocoon形式的许多男孩,然后立即删除我不再需要的mother。
如何绕过男孩表中不存在的列mother_id,只保存男孩的行而不引用“假”母亲?
在 Rails 中是否有一种方法可以创建一个表单,在该表单中我可以使用 Cocoon 之类的机制,但具有相同的模型实例而不是子实例,而无需明确“accepts_nested_attributes_for”?
【问题讨论】:
-
这意味着你永远没有母亲?所以我认为母亲模型的存在是不必要的
-
是的,但我不知道如何使用例如茧宝石来制作一个包含许多“行”的表格,这些“行”是我的假“母亲”的孩子。我可以在没有母亲模型的情况下在我的 form.html.erb 中构建相同的模型,并同时保存许多男孩模型,例如茧?
-
为什么不只是添加模型保存它并在保存
Boy后在您的create操作中删除母亲 -
不,你不明白我的意思。
-
您可以添加您的表单吗?所以我明白你想做什么?,因为我真的不明白你为什么需要一个母亲模型,你可以添加一个表单来创建男孩,就是这样......
标签: ruby-on-rails ruby-on-rails-4 activerecord rails-activerecord