2016-11-07 12 views
0
  • articlescommentsという2つのモデルがあります。
  • articlesが多いcommentsです。
  • commentsは空の文字列にすることはできません。

articles#indexには、ユーザーがコメントを残すための各記事の下に2つのテキストフィールド(username、comment_textなど)があります。オブジェクトの属性をリダイレクトする方法と保持する方法

ユーザーが空のコメントを送信すると、railsはその検証ジョブを実行し、保存方法はcomments#createで失敗します。今度はarticles#indexに戻り、適切なエラーメッセージを表示したいと思います。ここで私はいくつかの助けが必要です。

私は2つの選択肢しか持たないと思われますが、どちらも私を満足させるものはありません。次のいずれかの

  1. I renderarticles#indexcomments#createからの眺めが、その後、私は何とかarticles#indexのすべてのコードを複製する必要があると(彼らはarticles#indexをレンダリングしていながらcomments#create)、ユーザは適切ではないのURLにとどまる

  2. または私はredirect_toarticles#indexですが、私はコメントオブジェクトを失います。ここに私のためにそれを行うことはありませんだけでフラッシュメッセージを使用して、私は本当にすべてが私のコメントのオブジェクトを保持したまま戻ってarticles#indexに移動する方法はあります

属性と私のオブジェクトを保持する必要がありますか?このユースケースのベストプラクティスは何ですか?

PS:ここではjavascript/ajaxを使用しません。

+1

あなたは[セッション](http://guides.rubyonrails.org/action_controller_overview.html#session)変数 – SomeSchmo

+0

を使用することができます。私はRoccoに同意します - セッション変数を設定します - インデックスはセッション変数がそれに応じてセッション変数をnilに設定し、それに応じて情報を設定して使用してください。 – David

答えて

0

私は正当な方法は、一時的なセッション変数を設定し、次の要求でそれをロードした後にクリアすることだと思います。

これを達成するもう1つの方法は、クエリ文字列の次の要求でパラメータを渡すことです。 bar_attributesはハッシュだろう

redirect_to(foo_path, bar_attributes) 

:そうのような 。

関連する問題