如上所述。有沒有辦法將變量存儲在rails的視圖中供以後使用,而無需將其設置在該視圖的控制器函數中?有沒有辦法在Rails的視圖中存儲變量?
ex。
<% bagel = @bagels.active_bagel %>
...
<%= bagel.delicious? %>
如上所述。有沒有辦法將變量存儲在rails的視圖中供以後使用,而無需將其設置在該視圖的控制器函數中?有沒有辦法在Rails的視圖中存儲變量?
ex。
<% bagel = @bagels.active_bagel %>
...
<%= bagel.delicious? %>
如果你在相同的視圖模板(而不是在另一個模板),那麼確定 - 繼續前進並設置變量,就像你的例子。我們一直這樣做。
...但如果你去另一個模板使用這個變量...那麼它應該設置在調用範圍內,而不是一個魔術變量,在多個模板中使用,如果你明白我的意思: )
它可以做到這一點,但它不被認爲是好的做法。如果你可以在控制器中做到這一點,那麼你可能應該這樣做。
就你而言......我認爲你不應該在@bagels
變量上多次調用active_bagel
一個問題。
如果你正在嘗試這樣做,因爲你認爲它有可能會有一天緩慢....我建議等到它是實際上慢......然後找出如何優化速度然後。如果它是爲了其他目的......那麼告訴我們這是什麼,我們會找出一個更好的方法。
這可以實現這個
#app/views/xyz/
#1. make a hidden html input field
<input type ="hidden" id = "you_id" value = "<%= yourvariable %>"
#if u want to access that variable in every view write your code in app/helper/application_helper
#otherwise write in the specific helper something this kind of code
def yourvariable
#your code
return somthing which you want in view
end
and from that html tag access the value
你是問有關在視圖渲染兩次相同的百吉餅或你想百吉跨請求是否仍然存在? – NateSHolland
@NateSHolland我想要將變量初始化並保存在每個請求中以便稍後在當前請求中使用,不需要持久化 – Riptyde4
後來會發生什麼?更多意見?如果是這樣的話......也許你應該在你的控制器中獲取/存儲這個變量,以傳遞給你將要使用的各種視圖。 –