在Rails 5中,是否可以修改控制器中的基础参数?还是给它一个默认值?

时间:2019-03-01 00:30:11

标签: ruby-on-rails parameters controller ruby-on-rails-5 default

在Rails 5控制器中,您可以调用params并返回请求中参数的哈希值。

但是您不能那样修改参数。因为您要修改的是参数哈希值的副本,而不是对基础参数的引用。

stats 100 B+
cs 101 A-
history 101 A-
Pysch 201 B+
XYZ 864 D

您应该做的是将值存储在其他位置。

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

但是,如果代码中的其他许多地方期望使用params [:starting_value],则此解决方案可能需要进行一些混乱的更改。

是否可以在控制器中设置参数的默认值?还是我必须以稍微凌乱的方式来做。

我也可以通过重定向来实现我想要的功能,但这也不理想。

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找merge!方法。 Docs Here

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

它返回原始参数,并合并或覆盖新参数。请注意,没有感叹号的合并不会在适当位置进行修改。您需要它来保留更改。