在Rails 5中,有没有办法修改控制器中的底层参数?或者给它一个默认值?

问题描述 投票:0回答:1

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

但你不能这样修改参数。因为您正在修改的是params散列值的副本,而不是对底层参数的引用。

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

你应该做的是将值存储在别处。

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

但是如果代码中的其他一些地方需要params [:starting_value],那么这个解决方案可能需要一些混乱的变化。

有没有办法在控制器中设置param的默认值?或者我将不得不采取稍微混乱的方式。

我也可以用重定向完成我想要的东西,但这也不理想。

ruby-on-rails parameters controller ruby-on-rails-5 default
1个回答
0
投票

我想你正在寻找merge!方法。 Docs Here

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

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

© www.soinside.com 2019 - 2024. All rights reserved.