jsfiddle。_
posts#index テンプレートから、#linkTo ヘルパーを使用して新しいコメントを作成できます。このヘルパーは PostNewComment ルートに移動し、投稿/新規コメント フォームをレンダリングします。保存をクリックすると、PostNewComment ルート内の「保存イベント」を使用して、新しく作成されたコメントが保持されます。
post/comments」テンプレートの下の行のコメントを外して、動作することを確認できます
{{#linkTo "post.newComment"}} コメントを追加{{/linkTo}}
コントローラーの isAddingNew ボタンとレンダー ヘルパーを使用してフォームを表示するタイミングを決定するように UI を変更し、保存ボタンをクリックすると、次のようになります。
Uncaught TypeError: Cannot call method 'one' of null
これは私がそれをどのようにレンダリングするかです:
<p> {{render "post.newComment" }} </p>
レンダーヘルパーを使用した後に「保存」をクリックしたときにのみエラーがトリガーされるため、スコープの問題であると思われます。
[新しいコメントを追加] ボタンにアクセスするには:
click -> post -> a post title -> click comments link -> add comment
PostNewComment ルートで定義された「保存イベント」を使用するために、投稿/コメント テンプレートの「レンダー ヘルパー」を介して「投稿/新規コメント フォーム」を表示する方法はありますか。現在、そのフォームで定義されている「保存ボタン」をクリックすると、おそらくレンダリングヘルパーを介してフォームを表示するため、独自のルートではなく親ルート、つまり PostCommentsRoute に直接移動します。
「保存」の呼び出しは、独自のコントローラーに移動してから、階層を PostComments ルートにバブルアップしようとする前に、実際に定義されている独自のルートにバブルする必要があると思いました。