2017-01-20 1 views
-1

je contrôleur qui adonnées de retour en fonction des dates

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

modèle a

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

Je JSON créé pour afficher les données relatives aux comptes

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

start_date et date_fin sont paramètres optionnels. maintenant si je ne les passe pas je reçois toutes les entrées montrées ci-dessus qui est l'une des exigences. deuxième exigence est si je viens de passer start_date par exemple 2016-12-27 puis je reçois les entrées entre start_date et date d'aujourd'hui, donc je vais obtenir 2016-12-27 et "2017-01-03" entrées de json. Je suis nouveau sur les rails. quelqu'un peut-il m'aider comment puis-je mettre à jour mon code pour la deuxième exigence?

Merci

Répondre

0

vous pouvez le faire:

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

Merci, pouvez-vous s'il vous plaît me expliquer comment cette partie fonctionne? account_info @ account_info.account_dates (params [: start_date], end_date). Connaissez-vous des choses en ligne que je peux traverser? – User7354632781