,所以我有这样的代码,而我的目标是任何空字符串转换为null红宝石如何修改参数
def convert_empty_strings_to_null
if request.patch? || request.post?
convert_empty_strings_to_null_rec(request.params)
end
end
def convert_empty_strings_to_null_rec(param)
param = nil if param.empty? if param.is_a?(String)
param.all?{|v| convert_empty_strings_to_null_rec v} if param.is_a?(Array)
param.all?{|k,v| convert_empty_strings_to_null_rec v} if param.is_a?(Hash)
end
但我是新来的Ruby on Rails的,我发现它,它通过发送PARAMS价值,而不是通过引用,所以没有变化的参数,我如何解决这个问题?
注意'呢?'不替代任何东西。改用'map'。在散列的情况下,使用'param.map {| k,v | [x,y]} .to_h'。 – Raffael