Domanda

Ho impostato la mia app esattamente in linea con il Railscasts Time Zone Episodio 1 ma quando corro

<%= f.time_zone_select :time_zone, ActiveSupport::TimeZone.us_zones %>

ottengo questo errore

  

NoMethodError in Utenti # nuova

     

Mostra app / views / utenti / new.html.erb   dove la linea # 27 ha sollevato:

     

Hai un oggetto nullo quando non hai   aspettatelo! Ci si sarebbero aspettati un   istanza di Array. Si è verificato l'errore   valutando nullo. <=>

Con la linea 27 è la linea suddetta. Sono davvero bloccato su questo ...

È stato utile?

Soluzione

Ho esattamente lo stesso problema. Sembra essere correlato a Rails 2.3.8, perché se mi tornare alla mia precedente versione (2.3.4, impostando questo nel /config/environment.rb), tutto funziona bene. Si presenta come un bug. Sto controllando se questo bug report e la patch conseguente risolverà questo problema: https://rails.lighthouseapp.com/projects/8994-ruby-on-rails/tickets/4942-activesupporttimezone-incorrectly-stores -bogus-valori-in-zones_map # ticket-4942 .

Altri suggerimenti

Avete un campo di database per il modello di nome time_zone? è vero nome fuso orario, invece?

Avreste bisogno di una migrazione con qualcosa di simile:

add_column :users, :time_zone, :string

poi

rake db:migrate

Sì, questo è un bug in 2.3.8, ed è stato fissato nel biglietto di cui sopra.

E 'stato probabilmente causato da un fuso orario memorizzato in un campo di database che non corrispondeva a qualsiasi fuso orario sia Rails o tzinfo sapevano. Nel nostro caso, è stato scattato da accidentalmente HTML codifica e commerciali, in modo che Pacific Time (US & Canada) diventato Pacific Time (US &amp; Canada). http://github.com/rails/rails/commit/78e4d88c7071c633ee1eb68f49b90719aa198eaa dovrebbe risolverlo , ma si potrebbe desiderare di tornare indietro e assicurarsi che non si dispone di alcun dato ancora cattivo nel vostro DB.

Ho avuto questo stesso problema, che ha causato uno dei miei test cetriolo a fallire. Mi sono spostato in Rails 2.3.9 (dalla 2.3.8) e tutti i test superato. Buona fortuna!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top