# 传入参数进行secure params处理
def trip_params
params.require(:trip).permit(:name, :date)
end
# 然后使用时想要修改参数值
def save
trip_params[:name] = 'Modifying name in place'
#trip_params[:name] 仍然是原来的值
end
原因:
permit returns a new hash with those keys in it, so you’re not modifying the real params variable. You’re also not saving a reference to the hash trip_params returns, so you get it fresh each call in save.
可以改为:
def save
tp = trip_params
tp[:name] = 'Modifying name in place'
# ... use tp later, it'll be in there
end