1

フォームで build メソッドを使用するのは良い習慣ですか?

<%= form_for([@post, @post.comments.build]) do |f| %>

アプリケーションでこのメソッドを使用しましたが、正常に動作していますが、フォームが作成する空の結果もビューに表示されます。これはおそらく、フォームがあり、データベースに保存されているレコードを同じビューに表示しているためです。どうすればこれを回避できますか?

ありがとうございました

4

1 に答える 1

2

あなたのアプローチの問題は、検証エラーでフォームを送信した後、フォームが再度表示されると値が再初期化されるため、フォームに値やエラーメッセージが表示されないことです。

デフォルトの足場コントローラーがある場合は、これをnewアクションに入れます

@comment = @post.comments.build

そして、form_for呼び出しを次のように変更します

form_for([@post, @comment]) do |f|

このようにして、フォームには常に送信されCommentた .

于 2013-10-24T12:01:26.353 に答える