簡體   English   中英

在Rails 5中,是否可以修改控制器中的基礎參數? 還是給它一個默認值?

[英]In Rails 5, is there a way to modify the underlying params in a controller? Or give it a default?

在Rails 5控制器中,您可以調用params並返回請求中參數的哈希值。

但是您不能以這種方式修改參數。 因為您要修改的是參數哈希值的副本,而不是對基礎參數的引用。

params[:starting_value] ||= "abc" # doesn't work for my purposes

您應該做的是將值存儲在其他位置。

@starting_value = params[:starting_value] || "abc"

但是,如果代碼中的其他許多地方期望使用params [:starting_value],則此解決方案可能需要進行一些混亂的更改。

有沒有一種方法可以在控制器中設置參數的默認值? 還是我將不得不以稍微凌亂的方式進行操作。

我也可以通過重定向來實現我想要的功能,但這也不理想。

我認為您正在尋找merge! 方法。 Docs Here

params = params.merge!(:starting_value, 'abc)

它返回原始參數,並合並或覆蓋新參數。 請注意,沒有感嘆號的合並不會在適當位置進行修改。 您需要它來保留更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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