繁体   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