我目前正在创建一个包含一些嵌套属性的表单。相关部分是Sale
模型(表单的主模型),Vehicle
模型(sale has_one vehicle and vehicle belongs_to sale)和Registration_number
模型(许多)许多车辆,通过转让表)。
我正在使用优秀的Flexbox JQuery插件,该插件允许选择现有项目或创建新项目。
因为我正在使用Flexbox,所以有问题的字段主要用html编码,绕过了rails帮助。
当我尝试创建新的注册号码(使用字段名称sale[vehicle_attributes][registration_numbers_attributes][0][number]
)时,一切都很好,创建了一个新的注册号并将其分配给车辆。但是,当我尝试分配现有注册号(使用字段名sale[vehicle_attributes][registration_numbers_attributes][id]
)时,我收到以下错误:
Couldn't find RegistrationNumber with ID=3 for Vehicle with ID=5
这似乎没有多大意义 - 我看到它的方式,Rails应该尝试创建这种关联,而不是找到现有的关联?我可能做错了什么想法?
谢谢!
答案 0 :(得分:2)
您可以通过操作中间表(assignment
。
在模型中插入:
accepts_nested_attributes_for :assignments
在你的html中,添加以下行:
<input name="sale[vehicle_attributes][assignments_attributes][0][registration_number_id]" value="the_registration_number_id_goes_here" type="hidden">