如何在rails中处理多模型表单

时间:2010-02-26 01:45:53

标签: ruby-on-rails

我在Ruby on Rails 2.3.5中有一个复杂的表单,这里是它的结构: 艺术家   - 名称    - 专辑       -Songs    - 照片

每个艺术家都可以有专辑和几张照片。对于每张专辑,有几首歌曲。 我想创建一个3步骤的过程。    - 创作艺术家    - 创建专辑(可以选择创建多首歌曲)    - 创建照片

我想以类似向导的方式进行设置。 我的问题实际上非常普遍 - 你会如何(在组织上说)为这样一个项目创建模型和控制器的表单?

目前,我有一个名为Artist的模型,一个名为Albums的模型和一个名为Photos的模型。艺术家有很多专辑和照片。在哪个视图下我会放置表单?

现在,它的样子我去了: 艺术家/新 - 创作艺术家,不知何故将艺术家ID传递给专辑, 以专辑/新的形式移至专辑,继续将该艺术家ID传递给照片, 照片/新建照片然后完成 - >回到艺术家/秀。

理想情况下,我希望有像艺术家/新/ 1这样的东西来创作艺术家 艺术家/新/ 2创建专辑和艺术家/新/ 3创建照片。

我该怎么做呢?除了将页面路由到我想要的地方之外,这是组织事物的正确方法吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您可能需要nested routes。它会自动处理关系。

因此,您将拥有artists/1/albums/newartists/1/albums/5/songs/new

等链接

所以你的场景可能听起来像这样:

  1. artsists/new
  2. 将艺术家保存在帖子上。
  3. 重定向(或渲染ajax表单)到新文章(您可以使用rails生成的帮助器)redirect_to new_artist_article_url @artist_just_created_and_saved
  4. 保存艺术家并为歌曲等保存相同