2016-11-07 65 views
0
  • 我有兩個模型,articlescomments
  • articles有很多comments
  • comments不能爲空字符串。

對於articles#index,我在每篇文章下面有幾個文本字段(用戶名,comment_text等)供用戶留言。如何重定向並保留對象的屬性

當用戶提交空評論時,rails會執行驗證作業,並且保存方法在comments#create上失敗。我現在想回到articles#index並顯示相應的錯誤消息。這是我需要幫助的地方。

看來我只有兩個選擇,其中沒有一個能滿足我。或者:

  1. renderarticles#index的從comments#create觀點,但我必須以某種方式重複的articles#index所有代碼和用戶停留在這是不恰當的網址(comments#create,而他們有articles#index渲染)

  2. 或我redirect_toarticles#index但後來我失去了我的評論對象。只有使用閃光燈的消息,我不會做,在這裏,我真的需要讓我的對象的所有屬性

有沒有辦法回去articles#index,同時保持我的評論的對象?這個用例中的最佳做法是什麼? PS:我不希望在這裏使用任何JavaScript/AJAX。

+1

您可以使用[session](http://guides.rubyonrails.org/action_controller_overview.html#session)變量 – SomeSchmo

+0

我同意Rocco - 設置會話變量 - index可以檢查會話變量是否爲設置並相應地使用這些信息,一旦完成它,將會話變量設置爲零。 – David

回答

0

我認爲一種合法的方法是設置一個臨時會話變量,然後在下一個請求中加載後清除它。

實現此目的的另一種方法是將查詢字符串中的下一個請求傳遞給參數。 像這樣:

redirect_to(foo_path, bar_attributes) 

其中bar_attributes會出現亂碼。

相關問題