我正在寻找一种使用
Ruby将空字符串转换为nil的方法.如果我最终得到一个空格的字符串,我可以做
- " ".strip!
这将给我空字符串“”.
我希望能做的是这样的事情.
- " ".strip!.to_nil!
这将使用nil替换空字符串. to_nil!如果它是.empty会直接将字符串更改为nil?否则,如果字符串不为空,则不会改变.
这里的关键是我希望它直接发生而不是通过诸如的任务
- f = nil if f.strip!.empty?
解决方法
干净的方式是使用存在.
我们来试试吧.
- " ".presence
- # => nil
- "".presence
- # => nil
- "text".presence
- # => "text"
- nil.presence
- # => nil
- [].presence
- # => nil
请注意,此方法来自Ruby on Rails v4.2.7
https://apidock.com/rails/Object/presence