簡體   English   中英

Rails的生存時間可變

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM