[英]What's the right way to modify the params passed to controller in rails 3.1.0?
[英]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.