Как применить условие «где» к каждой записи - PullRequest
0 голосов
/ 21 ноября 2018

Я хочу отобразить difference_in_days для каждого HPId, который присутствует в таблице AccountClose.

Вот мой код

@a = AccountClose.where("AccountCloseId is not null").last.Date.to_date
@before = Date.today 
@difference_in_days = (@before.to_date - @a.to_date).to_i 

Только вышеупомянутый запросотображает difference_in_days для последней записи.Может ли кто-нибудь помочь мне с этим?

Ответы [ 3 ]

0 голосов
/ 21 ноября 2018

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

@closed_dates = AccountClose.where("AccountCloseId is not null").pluck('date(Date)')

=> [Пт, 20 января 2017, вс, 22 января 2017, вс, 22 января 2017, четверг, 02 фев 2017, вторник, 26 июня 2018 года, среда, 27 июня 2018 года, понедельник, 02 июля 2018 года, среда, 04 июля 2018 года, среда, 11 июля 2018 года, среда, 11 июля 2018 года, среда, 11 июля 2018 года, четверг, 12 июля 2018 года, чт, 12Июль 2018, пт, 13 июл 2018 ..]

Отображать разницу в днях для каждого HPId, который присутствует в AccountClose

@closed_dates.each do |colsed_date|
  puts "Difference in days is #{(Date.today - colsed_date).to_i}"
end
0 голосов
/ 21 ноября 2018

sidenote ...

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

https://en.wikipedia.org/wiki/Ruby_on_Rails https://en.wikibooks.org/wiki/Ruby_on_Rails

0 голосов
/ 21 ноября 2018
@before = Date.today 
@a = AccountClose.where("AccountCloseId is not null")
@a.each_with_index{|account_close,i|
   @difference_in_days = (@before.to_date - account_close.Date.to_date).to_i 
   puts "Difference in days for account close #{i}: \t #{@difference_in_days}"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...