2009-08-17 9 views
0

J'ai un calendrier_date_select dans une vue qui affiche un tableau répertoriant toutes les informations sur un certain téléphone. Je souhaite ajouter une plage de dates To: et From: qu'un utilisateur peut sélectionner et mettre à jour dans la vue. La structure est la suivante:ruby ​​on rails formulaire_pour

Utilisation Contrôleur
Action détaillée dans le contrôleur d'utilisation qui affiche l'historique des appels d'un certain téléphone.
Détail de l'intérieur Je veux les champs To et from avec un bouton d'actualisation.

Ce qui se passe exactement dans ce code:

<% form_for :date_range do |f| %> 
    <%= f.calendar_date_select :start, :time => true %> 
    <%= f.calendar_date_select :end, :time => true %> 
    <%= f.submit "Submit" %> 
<% end %> 

Est-ce que ce passage un hachage au contrôleur d'utilisation et recherchez une méthode date_range? Mon itinéraire actuel ressemble à ce

usage/detail/id-of-phone 

Je voudrais qu'il ressemble à ceci:

usage/detail/id-of-phone#start-end 

donc je pourrais alors (je pense) extraire les dates de début et de fin des params avec juste params [: start] et params [: fin]. Est-ce que je fais cela correctement, ou y at-il un meilleur moyen d'obtenir le résultat souhaité que je veux.

Répondre

2

Je n'ai pas utilisé le plugin calendar_date_select, mais vous devriez déjà récupérer les paramètres.

params[:date_range][:start] 
params[:date_range][:end] 
0

Qu'est-ce que vous voulez, c'est l'url ou la solution intelligente pour obtenir les paramètres? Veuillez définir les routes.rb pour l'URL. Ou vous pouvez faire beaucoup de méthode dans le modèle 'DataRange'.

Comme beaucoup de programmeurs qui utilisent, sauvegardez beaucoup de dates dans le modèle. Mais nous rendre terribles utilise intelligemment les params. Tels que

class Model 
    def start 
     ...... 
    end 

    def end 
     ...... 
    end 
end 

Vous ne pouvez pas obtenir les params par params [: start] si vous passez les params par la forme. Vous pouvez voir le code HTML du formulaire pour plus de détails.

S'il vous plaît utiliser le

params[:...][:start]