0
我無法弄清楚這一點,似乎並沒有在我能找到的任何地方直接討論。這是我的問題:我如何重置參數,使參數散列爲空我渲染'新'?如果滿足條件,則清除參數Rails 4
a = ['United', '1769']
Airline.all.each do |z|
if z.carrier == a[0] && z.flight == a[1]
#DO SOME STUFF
elsif z.carrier != a[0] || z.flight != a[1]
#CLEAR PARAMS HERE/DELETE CURRENT INSTANCE
render 'new'
end
end
我想通過Airline迭代並與之前存儲的用戶輸入數組「a」進行比較以確保它們匹配。如果數組中的一個或兩個對象與Airline中的任何內容不匹配,我基本上都想告訴用戶「嘿,那不存在,我們會讓你開始。」渲染'新'將它發送到新的控制器操作就好,但它保留了先前爲所討論的對象設置的參數。
那麼我該怎麼說「如果Airline中的一個或兩個東西不匹配用戶輸入,請清除參數散列,然後將其發送到控制器中的'新'動作?理想情況下,我希望在不告訴它銷燬當前對象實例的情況下(或者最後一個看起來實際上是同一件事情)這樣做,因爲這會起作用,但是當我呈現「新」時會導致凍結哈希。
是的,最好我不想操縱params哈希表......我聽說這是一個很大的禁忌,可引起各種問題。你的建議提出了另一個錯誤(我認爲我可以解決 - 它在一個循環中,所以它要求多次重定向,必須在遍歷所有航空公司時打破這個循環),所以我認爲它會起作用。但我不太明白它爲什麼會起作用......傳統上params被重定向時,它是否是慣例? – DanielNordby
是的,重定向重新加載頁面,因此重置參數(每次請求都會得到一組新的參數)。 – spickermann
謝謝!對下一個錯誤:) – DanielNordby