所以我有这个代码,我的目标是将任何空字符串转换为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,因此没有更改params,我该如何解决这个问题?
答案 0 :(得分:3)
首先,这就是你的<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="signin">
<div class="dialog">
<div class="content">
<div class="header">
<h4>Title</h4>
</div>
</div>
</div>
</div>
<div id="phone">
<div class="dialog">
<div class="content">
<div class="header">
<h4>Title</h4>
</div>
</div>
</div>
</div>
方法应该如何保持更改的持久性:
convert_empty_strings_to_null_rec
此外,我从您的问题中假设def convert_empty_strings_to_null_rec(param)
if param == ""
updated_param == nil
elsif param.is_a?(Array)
updated_param == param.map{|x| nil if x.empty? }
elsif param.is_a?(Hash)
updated_param = {}
param.each do |k, v|
if v.empty?
updated_param[k] = nil
else
updated_param[k] = v
end
end
end
return updated_param
end
是一种行动方法。应该更新它以捕获返回的convert_empty_strings_to_null
方法。
convert_empty_strings_to_null_rec
希望有所帮助:)
答案 1 :(得分:3)
我认为通过&#34;空&#34;你的意思是零 - 用字符串,这意味着只包含空格的字符串应保持不变。 (否则let calendar = NSCalendar.currentCalendar()
calendar.timeZone = NSTimeZone(name: "GMT")!
let date = calendar.dateFromComponents(components)
和blank?
将是您的朋友。)
strip