[英]Rails life time of params variable
在控制器的標准“索引”方法中,我在params哈希中設置了一些值,以便在尚未初始化的情況下在視圖中使用它,否則在其他情況下什么也不做。
def index
params[:my_value] ||= {}
end
當我使用包括? 視圖中的params [:my_value]上的方法,評估nil.include時出錯。
如果params [:my_value]不能為nil,為什么會有這樣的錯誤。 如果為nil,則應使用{}初始化其值,這就是|| =運算符的作用。 這可能是什么問題?
解決方案是在合並方法中。 事實證明
a = b.merge(a)
和
a.merge(b) {|key, v1, v2| v1 }
做不同的事情,在第一種情況(這是錯誤的)中,nil出現在某處。 我還沒有弄清楚為什么會這樣,因為merge方法總是返回一個哈希,當我用第二個替換第一個變量時,一切正常。 所以我沒看到任何問題...
Rails參數存在直至請求流完成
您可以訪問要呈現的視圖頁面內部的params
但是如果您正在重定向到控制器動作中的另一個頁面,則參數將不可用,因為它會中斷請求流。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.