2017-03-07 5 views
0

J'essaie de définir une valeur par défaut, ou idéalement d'abord afficher une liste prédéfinie d'options, fuseau horaire dans un formulaire lors de la création d'une société.Définir un fuseau horaire par défaut dans un formulaire Rails

Actuellement, le code ci-dessous rend une liste complète des fuseaux horaires disponibles, et trouver un fuseau horaire spécifique est plutôt fastidieux. Toutes les entreprises actuelles sont dans l'un des deux fuseaux horaires, et il serait préférable de définir par défaut un fuseau horaire spécifique ou, mieux encore, d'ajouter deux valeurs de fuseaux horaires en haut de la liste. Voici le champ de formulaire:

= form.select :time_zone, (TZInfo::Timezone.all.map { |tz| ["(UTC#{tz.current_period.offset.utc_offset/3600}) #{tz.to_s}", tz.name] }) 

J'ai essayé de définir quelques options différentes, mais il ne semble pas être un moyen classique de le faire.

Répondre

1

Peut-être que ce document API est ce dont vous avez besoin.

http://apidock.com/rails/v4.2.7/ActionView/Helpers/FormOptionsHelper/options_for_select

form.select :time_zone, options_for_select(TZInfo::Timezone.all.map { |tz| ["(UTC#{tz.current_period.offset.utc_offset/3600}) #{tz.to_s}", tz.name] }, selected: "your default option") 
+0

Merci @tsao, qui fonctionne en ajoutant un fuseau horaire (Canada/Est) dans le sélectionné: param. Ensuite, je me demande comment vous pouvez ajouter deux options en haut de la liste, suivies des options restantes. – VegaStudios

+0

@VegaStudios, le document de l'API indique que «selected peut également être un tableau de valeurs à sélectionner lors de l'utilisation d'un select multiple», alors peut-être que vous pouvez définir la valeur sélectionnée comme étant un tableau. – Tsao