J'ai suivi Ryan Bates tutorial sur des modèles imbriqués. Plusieurs de mes modèles imbriqués sont associés à des dates. Dans mes migrations, ils sont en fait le type "Date".Modèles imbriqués, formulaires et date_select Intégration de FormHelper
Certaines choses que j'ai essayé et problèmes que j'ai rencontré
- date_select - peut gérer le préfixe d'objet forme, mais pas les modèles imbriqués les attributs
- select_year - ne fonctionne pas avec la forme objet
- un régulier sélectionnez rempli avec l'année en utilisant (Time.now.year - 100) .. (Time.now.an) et en remplaçant l'accesseur access_date et end_date pour prendre la valeur dans le select pour former un date et en passant cela. fonctionne sur créer uniquement, pas sur mise à jour
- en modifiant le type de données du champ en chaîne et en utilisant une sélection régulière remplie avec l'année en utilisant (Time.now.year - 100) .. (Time.now. an) travaux, mais modifier, il ne sera pas repeupler la sélection avec les informations actuelles
des idées ou des conseils seraient utiles.
Edit: before_save semble être plus prometteuse, mais pour une raison quelconque, la valeur est nulle entrée en avant d'enregistrer, mais est visible dans le log dump.
Edit 2: Fait intéressant, cela ne semble être un problème sur 'update', pas sur 'create'.
Malheureusement, ce n'est pas le cas. Vous devez appliquer un peu d'un hack pour le faire fonctionner. <% date_select ('attorney [memberships_attributes] [NEW_RECORD]', "enddate",: début_année => 2015,: end_year => 1900,: order => [: mois,: jour,: année],: prompt => { : jour => 'Jour',: mois => 'Mois',: année => 'Année'})%>. L''avocat [memberships_attributes] [NEW_RECORD]' est préfixé sur select et utilise ensuite l'attribut correct. Cela ne fonctionne que si vous pouvez remplacer 'NEW_RECORD' au moment de la création du modèle imbriqué, ce qui n'est pas possible. – davidstites