我正在尝试添加一个 before_validation 钩子来清理多余的空白。作为其中的一部分,我还想将任何空白字符串值设置回零。这样做的原因是为了防止用户在必填字段中输入空格以试图绕过它。
以下是我尝试执行此操作的方法。更改[x][1].strip!行按我的预期工作,并给我一个空白行。但令我惊讶的是,当我尝试设置 changes[x][1] = nil 时,changes[x][1] 的值保持不变。通过一些调试测试,我发现不仅失败了,而且任何将 changes[x][1] 设置为 ANY 值的尝试都无法真正更新数组!
我很想听听我在这里做错了什么,以及如何解决它。非常感谢!
def strip_whitespace
changes.keys.each do |x|
if changes[x][1].respond_to?(:strip!)
changes[x][1] = nil if changes[x][1].blank?
changes[x][1].strip!
end
end
end