Условные запятые в модели Rails - PullRequest
0 голосов
/ 10 января 2012

Каков наилучший способ определения метода в модели, который содержит столбцы, которые могут быть равны нулю, но разделены запятыми или дефисами, если не равны нулю? Например, место, где за городом и штатом должны стоять запятые. Этот подход, очевидно, сработает только в том случае, если потребуется город, штат и страна. В противном случае у меня останутся нежелательные запятые. Например, у пользователя может быть указан только штат, или могут быть указаны только город и страна.

Модель пользователя

 def location
      "#{city}, #{state}, #{country}"
 end

Я стараюсь избегать какого-то действительно уродливого кода, подобного тому, что я изложил ниже. Кто-нибудь знает более чистый или красивый способ написать это?

Вот немного уродливого, плохого подхода, которого я хочу избежать. По сути, явно выписывая каждую возможность.

 def location
   if !city.blank? && state.blank? && country.blank?
   "#{city}, #{state}, #{country}"
   end
 end

1 Ответ

7 голосов
/ 10 января 2012

Присоедините значения, которые не являются пустыми:

def location
  [city, state, country].reject(&:blank?).join(", ")
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...