Rails: как сделать COUNTA из Excel для выбранных столбцов? - PullRequest
0 голосов
/ 07 мая 2018

У меня есть таблица Users, которую я хочу проанализировать, посчитав количество ячеек, в которых есть данные, например функцию COUNTA в Excel, которая подсчитывает ячейки, в которых есть данные:

        JOB           | ADDRESS | LOOKS | WEALTH
Matthew Tax Collector |         | 3     | 9
Mark                  | Galilee | 6     | 

social_count считает ячейки, в которых есть данные в адресе и задании. personal_count подсчитывает ячейки, которые имеют содержание во внешности, богатстве. Есть ли более простой способ сделать это в Rails? (потому что столбцов намного больше).

В Excel это будет

COUNTA(B2:C2) # outputs 1 
COUNTA(D2:E2) # outputs 2

Мой код Rails:

socio_count = 0
if @user.job.present?
  socio_count = socio_count + 1
end

if @user.address.present?
  socio_count = socio_count + 1
end

# more columns here..


@socio_count = socio_count # outputs 1

personality_count = 0
if @user.looks.present?
  personality_count = personality_count + 1
end

if @user.wealth.present?
  personality_count = personality_count + 1
end

# more columns here..

@personality_count = personality_count # outputs 2

1 Ответ

0 голосов
/ 07 мая 2018

Использование .send.

%i(job address phone).each do |symbol|
  @user.send(symbol).present? and socio_count += 1
end

Это немного более СУХОЙ. Существуют также способы доступа к столбцу ActiveRecord по имени. И вы должны отредактировать свой пост, чтобы объяснить COUNTA Excel, для тех, кто его не знает ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...