这可能更像是一个 ruby 问题,而不是 rails 问题,但我很确定我能够在 vanilla ruby 应用程序中做到这一点。
我定义了强大的参数。
def trip_params
params.require(:trip).permit(:name, :date)
end
现在我在控制器方法中获取这些参数。我想做这个。
def save
trip_params[:name] = 'Modifying name in place'
#trip_params[:name] still equals original value passed
end
这永远行不通。 名字永不改变。顺便说一句:trip_params 的类型是 ActionController::Parameters
如果我做一个标准的 ruby 脚本,它就可以工作。
test = {}
test[:name] = "blah"
test[:name] = "ok"
puts test #{:name=>"ok"}