1

我有一个演示模型,我以通常的方式通过表单创建它。

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 上的操作来呈现;另一个编辑动作?从某种意义上说,该页面允许通过创建其嵌套资源来编辑演示文稿。

4

2 回答 2

1

通常,PresentationController#edit(和相应的#update)用于修改“Presentation”模型。如果您已经拥有#edit 和相应的#update,并且您希望在单独的操作中创建记录,那么您需要创建另一对操作。另一种选择是您可以使#update 足够通用以处理“正常编辑”和“创建记录”。在这种情况下,#edit 和#record 操作都可以将表单提交给#update 操作。

于 2012-05-17T06:00:21.090 回答
0

我认为它应该是 Presentation 模型中 nested_attributes 的一部分,而不是您可以使用 create 或 update 操作将所有这些信息添加到演示文稿中

于 2012-05-16T20:11:47.883 回答