【发布时间】:2012-05-16 19:48:35
【问题描述】:
我有一个演示模型,我通过表单以通常的方式创建。
Presentation Model 有两个嵌套资源:Recording Model 和 SlideDeck Model:
class Presentation < ActiveRecord::Base
has_one :recording
has_one :slide_deck
end
我有一个 Flash 组件,它允许用户录制演示文稿并在其持续时间内添加幻灯片。一旦用户完成创建和编辑演示文稿,他们点击保存。
此时,我需要将 Recording 和 SlideDeck 创建为 Presentation 上的嵌套资源。这意味着从一个表单创建两个模型。
我的问题是这个页面应该放在哪里?如果组件仅创建 Recording,则页面将从 recording_controller 上的新操作呈现,如果它仅创建 SlideDeck,则页面将从新的 slide_deck_controller 呈现。但是在这种情况下,我会同时创建两者。
那么组件应该放在哪里呢?是否应该通过presentation_controller 上的操作来呈现;另一个编辑动作?从某种意义上说,此页面允许通过创建其嵌套资源来编辑演示文稿。
【问题讨论】:
-
这样的声音会进入 PresentationsController#new 和 #create。
-
@RobDavis 谢谢。这是有道理的,除了两个问题。 1. 我希望能够独立于制作录音来创建演示文稿 2. 从可用性的角度来看,我希望在创建/编辑演示文稿的任务(其名称、描述等)和录音任务之间进行某种分离/编辑录音和幻灯片。鉴于我要求这两个任务位于不同的页面中,将录制/编辑任务视为 PresentationsController 上的单独操作有什么问题吗?
标签: ruby-on-rails ruby-on-rails-3 model controller nested-resources