根据日期返回数据

时间:2017-01-20 20:28:05

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4

我有控制器

@account_info = @account_info.account_dates(params[:start_date], params[:end_date]) unless
params[:start_date].nil? || params[:end_date].nil?

模型有

self.table_name = 'UserAccounts'
scope :account_dates, -> (start_date, end_date) { where(account_date: start_date.to_date...(end_date.to_date + 1)) }

我创建了json来显示有关帐户的数据

accounts: [
{
name: "John"
account_date: "2016-12-27"
},
{
name: "Mike"
account_date: "2017-01-03"
},
{
name: "Jason"
account_date: "2014-01-01" 
}
]

start_date和end_date是可选参数。现在,如果我没有通过它们,我得到上面显示的所有条目,这是要求之一。第二个要求是,如果我只是通过start_date,例如2016-12-27然后我得到start_date和今天日期之间的条目,那么我将得到2016-12-27和" 2017-01-03"来自json的条目。我是铁杆新手。有人可以帮助我如何更新我的代码以满足第二个要求?

由于

1 个答案:

答案 0 :(得分:0)

你可以这样做:

end_date = params[:end_date] || Time.now
account_info = @account_info.account_dates(params[:start_date], end_date) unless params[:start_date].nil?