Rails一个表单可以编辑同一模型的多个记录



假设我有一个用户模型、一个品种模型,然后是一个宠物模型。用户将拥有许多不同品种的宠物。我想要一个看起来像这样的表格:

[下拉菜单选择宠物名称]

[名称]<---编辑名称(如果需要)

【品种】

[年龄]

[颜色]

因此,如果用户有10只不同的宠物,"下拉菜单选择宠物名称"中会有10个宠物名称。当用户从下拉列表中选择一个名称时,应预先填充其他字段。希望有一种删除记录或添加新记录的方法。

在我看来,我的直觉是迭代表单,将它们封装在div中,然后使用JS来控制哪一个是可见的。不过,这似乎是不必要的复杂。这真的是最好的方法吗?

用户的记录可能不会超过50条。


编辑以添加:

好吧,所以我想我会得到更多。这就是我应该做的。在我的控制器中,我应该有这样的东西:

current_user.pets.each do
@pets = pets.find(#ID) 
end

那么在我看来,我应该有:

[Drop down of all pets]
pets.each do
<div id=id class=hidden>
simple_form_for @pet_ID
</div>
end

然后是一个在下拉菜单上启动的脚本:

<script>
Hide <div> with previous pet id
Show <div> with new pet id
</script>

结合railscasts的嵌套表单应该可以做到,对吧?我在这里犯了什么新手错误吗?

查看Ryan Bates的Railscasts。查找嵌套集合。

http://railscasts.com/episodes/196-nested-model-form-part-1

http://railscasts.com/episodes/197-nested-model-form-part-2

他提供了一个非常简单的解决方案,可以在一对多其他集合中嵌套集合。瑞恩太棒了。如果你对Rails的开发是认真的,那么他的全系列视频每月价值9美元。

最新更新