如何将“where”条件应用于每条记录

How to apply `where` condition to each record

我想为每个 HPId 显示 difference_in_days,它出现在 table 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。谁能帮我解决这个问题?

@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}"
}

使用pluck查询作为数组

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

=> [2017年1月20日星期五,2017年1月22日星期日,2017年1月22日星期日,2017年2月2日星期四,2018年6月26日星期二,2018年6月27日星期三,2018年7月2日星期一, 2018年7月4日星期三,2018年7月11日星期三,2018年7月11日星期三,2018年7月11日星期三,2018年7月12日星期四,2018年7月12日星期四,2018年7月13日星期五..]

为 AccountClose

中存在的每个 HPId 显示 difference_in_days
@closed_dates.each do |colsed_date|
  puts "Difference in days is #{(Date.today - colsed_date).to_i}"
end

a sidenote ...

you really should try to follow the rails way. convention over configuration. that means to take care how to name you database, tables and fields and lots more. it makes life much easier.

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