2010-11-10 4 views
5

Il metodo date_select può essere impostato solo: start_year, ma mi piacerebbe impostare la data di inizio (ad esempio la data di 3 mesi fa) (ma non ci sono opzioni del genere).Rails 3 - Posso impostare la data di inizio per il metodo data_select?

quindi, posso impostare la data di inizio al metodo data_select? o, per rendere tale la casella di selezione, dovrei usare select_tag e options_for_select? o, ci sono soluzioni?

grazie,

risposta

5

Il date_select aiutante supporta solo l'impostazione di un start_year e end_year (vale a dire 2015-2020), non un start_date e end_date (vale a dire 1 Giu 2015 al 1 ° luglio 2020). L'helper date_select è progettato per essere molto semplice. Se guardi da vicino, noterai che ogni mese ha 31 giorni.

alcune soluzioni sono disponibili:

  1. fare convalide sul lato server e gli errori presenti se le date sono presentati che sono al di fuori di un intervallo accettabile.
  2. Passare all'utilizzo di un client JavaScript, ad esempio http://amsul.ca/pickadate.js/date/, che consente di limitare l'inizio e la fine (è consigliabile utilizzare anche le convalide sul lato server).
+0

oh, capisco. penserò a fare convalide sul lato server. grazie per la tua spiegazione dettagliata! – bekkou68

+0

@KevinSylvestre, è possibile impostare: start_year. Ho molti posti nel mio codice e funziona. – Jay

+0

@Jay Sì, puoi. La domanda originale afferma anche questo. La mia risposta afferma che non è possibile specificare una data di inizio ** ** (come in partenza il 2 maggio 2010) senza l'uso di JavaScript e non con il metodo predefinito date_select. –

8

È possibile ... ad es.

: start_year - Impostare l'anno iniziale per la selezione dell'anno. L'impostazione predefinita è Time.now.year - 5

vedere this resource.

Problemi correlati