1

チケットがあり、返信があります。チケットには多くの返信があり、返信はチケットに属します。チケット/ショー ページの上部に、いくつかのチケット パラメータを更新するチケット フォームがあります。で始まる

= form_for @ticket do |f|

その後、閉じます。このフォームは正常に機能します。

同じページに「返信フォーム」を作成しました

= form_for [@ticket, @ticket.replies.build] do |f|

その後、閉じます。問題は、アクティブなレコード検証のいずれかが応答フォームで呼び出され、レールがエラーメッセージとともに応答コントローラーにリダイレクトされる場合ですが、現在のページにリダイレクトする必要があります。私は私の人生のためにこれを理解することはできません。グーグルで検索し、応答コントローラーでレンダリングを再指定しようとしましたが、役に立ちませんでした。

どんな助けでも大歓迎です。

皆さんありがとう。

4

1 に答える 1

0

リモートでそれを行うと、問題が解決し、ユーザーフレンドリーになる可能性があります。

選択肢がない場合は、フォームで行う必要があることに注意し@reply || @ticket.replies.buildてください。そうしないと、エラーがある場合にフォームに表示されません。

レンダリングは別のコントローラーであるため機能しないため、2 つのオプションがあります。

  1. 返信を作成するためにチケットコントローラーで新しいアクションを作成し、フォームで指定します
  2. アクションで使用redirect_to ticket_url(@ticket, @reply)し、そのためのルートを作成します。:ticket_id と :reply_id が必要です
于 2012-05-18T00:26:53.593 に答える