具有嵌套属性的复杂表单,如何添加与现有模型的关系

时间:2014-07-27 14:12:33

标签: ruby-on-rails nested-forms nested-attributes

我有嵌套表格的复杂形式
产品< - OneToMany - >变体(:product_id)< - OneToMany - >资产(:variant_id)
全部采用单一形式...... 我有nested_form gem用于在客户端添加新项目。 这一切都很好,直到资产...... 通过使用Ajax上传文件创建的资产...因此,当我创建新产品时,资产已经存在于数据库中 所以产品(及其变体)是新的,需要在数据库中创建,但资产已经存在..

问题是如何在产品创建表单中将新Variant链接到现有资产......

问题不在于javascript中添加嵌套字段......但是我应该在哪些字段中添加它以使其工作... 目前我正在添加

<input class="id" id="product_variants_attributes_1406469924735_assets_attributes_1406469935999_id" name="product[variants_attributes][1406469924735][assets_attributes][1406469935999][id]" type="hidden" value="17">

但是这不起作用,因为Rails在Variant的范围内搜索资产......至少还不存在而且即使存在变体,该变量中也没有该变量的资产...所以我是提交时收到此错误: Couldn't find Asset with ID=17 for Variant with ID=

是否有任何神奇的HTML代码将被转换为服务器端的variant.assets << Asset.find(id) ...?

是否可以使用表单管理与现有项目的OneToMany关系?或者我应该将我的关系转换为ManyToMany,以便我将使用“连接表”模型......

0 个答案:

没有答案