【问题标题】:How to approach multi-model form in rails如何在 Rails 中处理多模型形式
【发布时间】:2010-02-26 10:07:36
【问题描述】:

我在 Ruby on Rails 2.3.5 中有一个复杂的表单,它的结构如下: 艺术家 - 姓名 - 专辑 -歌曲 - 照片

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

我想以类似向导的方式进行设置。 我的问题实际上很笼统——您将如何(从组织上讲)为此类项目的模型和控制器创建表单?

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

现在,它的样子我去: 艺术家/新 - 创建艺术家,以某种方式将艺术家 ID 传递给专辑, 移动到专辑作为专辑/新专辑,继续将该艺术家 ID 传递给照片, photos/new 创建照片然后完成 -> 回到艺术家/节目。

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

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

谢谢!

【问题讨论】:

    标签: ruby-on-rails


    【解决方案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. 将艺术家和歌曲等保存到相同的位置

    【讨论】:

    • 这看起来很有希望,但是当我第一次创建艺术家时,我不清楚如何解决它——我还没有它的 id。我该怎么办?
    • 用细节更新了答案。
    • 请查看我提供的链接。通读一遍(尤其是嵌套的RESOURCES),你会没事的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-08
    • 2017-04-09
    相关资源
    最近更新 更多