Credo che datetime_select
sia una magia nera. Quello che sto cercando di capire è l'intero 1i
, 2i
, 3i
, 4i
... più parametri. In particolare come viene gestito nel back-end (activerecord, qualcos'altro?). Cosa c'è nella "i" dopo il numero d'ordine? È un identificatore di tipo? Se sì, quali sono gli altri tipi disponibili? Ho letto l'origine di date_helper.rb ed è piuttosto opaco.Come funzionano gli attributi multieffetto ruby on rails * really * work (datetime_select)
Ecco la mia motivazione:
Ho una colonna di :datetime
nel mio modello e voglio di ingresso nella visualizzazione tramite due text_field
s: uno per la data e una per volta. Devono essere convalidati, uniti insieme, quindi archiviati nella colonna datetime. In definitiva userò un calendario javascript per inserire le date nel campo della data.
Quindi qualcuno ha fatto questo? Ho provato ad utilizzare attributi virtuali (incredibilmente privi di documenti oltre al rudimentale railscast) e il problema era che quando un nuovo oggetto activerecord viene creato e ha attributi nil, l'attributo virtuale fallisce (metodo non definito strftime
per la classe nil, che ha senso).
Qualcuno ha suggerimenti o buone pratiche? Grazie!
in activerecord/base.rb [assign_multiparameter_attributes] crea un'istanza di oggetti per tutte le classi di attributi che richiedono più di un parametro del costruttore. Funziona chiamando la nuova colonna o l'oggetto del tipo di aggregazione con questi parametri. cioè: written_on (1) = "2004", written_on (2) = "6", written_on (3) = "24", crea un'istanza scritta_on (un tipo di data) con Date.new ("2004", "6", "24"). Puoi anche specificare un carattere typecast tra parentesi per fare in modo che i parametri siano tipizzati prima di essere utilizzati nel costruttore. Usa i per Fixnum, f per Float, s per String e a per Array. –
Ciao Dean, se hai trovato la tua risposta, il solito approccio è "Rispondi alla mia domanda" in modo che le persone possano vedere che la domanda è stata risolta. – nfm