Преобразование пустой строки в ноль через split () - PullRequest
2 голосов
/ 10 июля 2011

У меня есть строка, которую я разделяю, следующим образом:

foo, bar, baz, etc = str.split(',')

Если, например, str равно «один, два, четыре», то baz заканчивается «» (пустая строка). Есть ли простой способ пройти через них для параметров, чтобы преобразовать их в nil, если они являются пустой строкой? Или я застрял, делая следующее?

foo = nil if foo.blank?
bar = nil if bar.blank?
baz = nil if baz.blank?
etc = nil if etc.blank?

Ответы [ 2 ]

6 голосов
/ 10 июля 2011

Если вы делаете это в рельсах, вы можете использовать метод присутствия Object #:

foo, bar, baz, etc = str.split(',').map(&:presence)
5 голосов
/ 10 июля 2011

Я могу предложить вам это решение:

foo, bar, baz, etc = str.split(',').map{|ss| ss.blank? ? nil : ss}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...