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