Rails一个表单来编辑同一模型的许多记录

时间:2012-09-25 16:21:39

标签: ruby-on-rails-3 forms simple-form

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

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

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

[品种]

[年龄]

[颜色]

因此,如果用户有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的嵌套表单相结合应该可以做到,对吗?我在这里犯了任何新秀错误吗?

1 个答案:

答案 0 :(得分:1)

查看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美元。