1

フォームを介して通常の方法で作成するプレゼンテーション モデルがあります。

プレゼンテーション モデルには、レコーディング モデルとスライドデッキ モデルの 2 つのネストされたリソースがあります。

class Presentation < ActiveRecord::Base

has_one :recording
has_one :slide_deck

end

ユーザーがプレゼンテーションを記録し、その期間中にスライドを追加できるようにする Flash コンポーネントがあります。ユーザーがプレゼンテーションの作成と編集を終了したら、[保存] をクリックします。

この時点で、Presentation にネストされたリソースとして Recording と SlideDeck を作成する必要があります。これは、1 つのフォームから 2 つのモデルを作成することを意味します。

私の質問は、このページをどこに置くべきですか? コンポーネントが Recording のみを作成している場合、ページは recording_controller の新しいアクションからレンダリングされ、SlideDeck のみを作成している場合、ページは新しい slide_deck_controller からレンダリングされます。ただし、この場合、両方を同時に作成しています。

では、コンポーネントはどこに置くべきでしょうか? presentation_controller のアクションによってレンダリングする必要があります。別の編集アクション?ある意味では、このページでは、ネストされたリソースを作成してプレゼンテーションを編集できます。

4

2 に答える 2

1

通常、PresentationController#edit (および対応する #update) は、'Presentation' モデルを変更するために使用されます。すでに #edit と対応する #update があり、記録を別のアクションで作成する場合は、別のアクションのペアを作成する必要があります。もう 1 つのオプションは、「通常の編集」と「記録の作成」を処理するのに十分な #update を一般的なものにすることです。その場合、#edit アクションと #record アクションの両方でフォームを #update アクションに送信できます。

于 2012-05-17T06:00:21.090 に答える
0

作成または更新アクションでそのすべての情報をプレゼンテーションに追加できるよりも、プレゼンテーションモデルのnested_attributesの一部である必要があると思います

于 2012-05-16T20:11:47.883 に答える