Ho un modello nella mia app Rails per un Bollettino, e quando viene creato, molti valori sono memorizzati nel database come hash o array serializzati, per poterli accedere successivamente. Sto cercando di creare una visualizzazione di modifica solo per uno di questi hash, ma non riesco a capire come accedervi nel mio modulo.Come modificare gli hash serializzati di Rails in un modulo?
L'hash assomiglia a questo, se conservati:
top_offices = { first_office: "Office Name", first_office_amount: 1234.50,
second_office: "Office Name", second_office_amount: 1234.50 }
E così via ... ci sono cinque uffici.
Così nella console posso modificare i valori facendo:
bulletin = Bulletin.last
bulletin.top_offices[:first_office] = "New Office"
bulletin.top_offices[:first_office_amount] = 1234.00
bulletin.save
io non riesco a capire come fare un modulo che mi permette di assegnare correttamente quei valori. Non ho nemmeno realmente bisogno del modulo per popolare con i valori precedentemente memorizzati perché li sto modificando completamente ogni volta che utilizzo il modulo.
Ok. Penso che sarò in grado di capirlo usando l'opzione uno. Probabilmente preferisco il secondo approccio, ma non riesco a capire come funziona nella mia testa. Come uso questi metodi nel modulo? Posso semplicemente creare un 'form_tag' e alcuni' text_field_tag' per ': first_office' e così via, una volta che li definisco e invio all'azione di aggiornamento? –
Gli helper * _fieldview stanno cercando il nome dell'attributo assegnato all'oggetto dato form_for. Quindi, se hai fatto 'form_for @bulletin do | f |' e poi fai 'f.text_field: first_office', l'helper' text_field' chiamerà qualcosa chiamato first_office sull'oggetto.Potrebbe essere un attributo o un metodo. Questa è la parte "magica";) – ZedTuX