2013-05-27 2 views
0

Dans mon application, je laisse les gens sélectionner leur année de début pour un emploi. Cela fonctionne bien lors de la création d'un nouveau travail, mais sur le formulaire d'édition, je veux que l'année sélectionnée par l'utilisateur lors de la création soit automatiquement la population.Rails - comment définir par défaut sur le formulaire d'édition pour une année sélectionner formulaire

Mon code:

<%= select_year Date.today, start_year: Time.now.year, end_year: Time.now.year - 95, field_name: :start, prefix: :job %> 

Actuellement, il vient par défaut 2013 à chaque fois. Je sais que je passe correctement dans la variable d'instance parce que les autres champs sont remplis automatiquement, mais pas dans la liste déroulante de cette année.

Comment puis-je faire fonctionner ceci?

+1

Je ne suis pas sûr que je suis votre question. 'start_year' est actuellement défini sur' Time.now.year', qui affichera 2013 dans l'exemple ci-dessus. Si vous voulez transmettre une variable d'instance, vous pouvez le faire en changeant 'Time.now.year' à' @ starting_year_instance_variable'. – Justin

+0

Je pense que je vous comprends, mais mon problème est que end_year dépend de l'année de début. Donc si je définis l'année de début 2009 par exemple, je perds les options dans le formulaire d'édition pour 2010, 2011, etc. Comment pourrais-je conserver toutes les options et toujours sélectionner l'année passée depuis le contrôleur pour la vue d'édition? – Zephyr4434

Répondre

1

Cette réponse a été trop longue à mettre dans les commentaires, donc je la mets ici comme une réponse, mais laissez-moi savoir si elle répond à votre question ou non.

Vous pouvez définir manuellement les variables start_year et end_year, par exemple, 1950 et Time.now.year. Ensuite, définissez le premier argument dans select_year helper à la variable d'instance pour en faire la sélection par défaut entre la plage étendue au lieu de Date.today.

Par exemple:

<%= select_year @instance_variable, start_year: 1950, end_year: Time.now.year, field_name: :start, prefix: :job %>

D'autres exemples sont disponibles dans les rails Docs aussi: http://api.rubyonrails.org/classes/ActionView/Helpers/DateHelper.html#method-i-select_year

+0

Merci, cela a répondu à ma question! – Zephyr4434

Questions connexes