在docs,他們有:爲什麼你必須使用Rails參數獲取?
params = ActionController::Parameters.new(person: { name: "Francesco" })
,然後使用params.fetch(:person)
得到的人,但你不能只是做params[:person]
?獲取相同的數據?
在docs,他們有:爲什麼你必須使用Rails參數獲取?
params = ActionController::Parameters.new(person: { name: "Francesco" })
,然後使用params.fetch(:person)
得到的人,但你不能只是做params[:person]
?獲取相同的數據?
我想這取決於你想要的行爲。
params = ActionController::Parameters.new
params.fetch(:person)
會引發錯誤。正如文檔中所反映的,如果您願意,您可以使用fetch
指定更多行爲。
params = ActionController::Parameters.new
params[:person]
將返回nil
。
爲什麼你必須使用Rails params的fetch?
你不知道。您正在查看的documentation for fetch
method。當然,它在任何地方都使用fetch
。還有:
params = ActionController::Parameters.new(person: { name: "Francesco" })
params[:person] # => <ActionController::Parameters {"name"=>"Francesco"} permitted: false>
params[:none] # => nil
應該加上你可以'params.fetch(:person,「」)'來避免錯誤。 'fetch'是更好的IMO,因爲如果你試圖獲得的那個不存在,你可以決定返回的值。 – Iceman
@Iceman很棒!我將考慮朝着這個方向發展,因爲在價值缺失時明確表達一個人想要的行爲似乎是一個非常好的主意。 – jvillian