Ho appena trasferito un'applicazione in un ambiente di produzione Heroku.ActiveRecord :: UnknownAttributeError?
Fondamentalmente c'è un modello Bus
ed ha un attributo
class Bus < ActiveRecord::Base
attr_accessible :seats, # other attributes
end
seats
Ora ho un frontend JavaScript che JSON di POST per i nuovi autobus per l'azione buses#create
.
ActiveRecord mantiene di un errore quando si tenta di creare un bus:
: POST www.busables.com/buses dyno=web.1 queue=0 wait=5ms service=65ms status=500 bytes=728
:
: ActiveRecord::UnknownAttributeError (unknown attribute: seats):
: app/controllers/buses_controller.rb:31:in `new'
: app/controllers/buses_controller.rb:31:in `create'
I parametri stanno raggiungendo fini azione del controller. Posso accedere e ottengo il folowing:
The bus parameters received: {"seats"=>"24", "departure_time(1i)"=>"2011", "departure_time(2i)"=>"11", "departure_time(3i)"=>"25", "departure_time(4i)"=>"16", "departure_time(5i)"=>"15", "route_attributes"=>{"summary"=>"N51", "beginning_address"=>"A place", "terminal_address"=>"Another place", "distance"=>26362, "duration"=>1753}}
ho controllato che la tabella Bus
ha in realtà la colonna seats
e lo fa (ho eseguito questo nella console Heroku):
> Bus.column_names
=> ["id", "name", "route_id", "created_at", "updated_at", "price", "departure_time", "trip_distance", "trip_duration", "seats"]
E Certo che ho provato a migrare e caricare lo schema del database. Ho controllato che anche attr_accessible :seats
sia impostato correttamente.
Altre idee?
Sto eseguendo Rails 3.1.1 sullo stack Heroku Cedar. Tutto funziona bene sul mio computer locale.
Quando ciò accade, prova un "heroku restart". Ho appena avuto questo problema dopo aver eseguito una migrazione, ma il riavvio risolve il problema. – Leito
Ho provato "heroku restart" e non ha funzionato per me, quindi ho cercato su Google questo problema e ho trovato questo post e ho realizzato che "heroku restart' è impostato per default sul mio ambiente di staging. forzando la mia app di produzione: 'heroku restart --app myproductionapp' ha funzionato! – DJTripleThreat
Questo deve essere stato perché hai distribuito l'app, eseguito le migrazioni. Ma l'app era già in esecuzione, quindi non ha notato le modifiche nello schema db. Cioè, dovevi [riavviare] (http://stackoverflow.com/a/15743272/52499) [it] (http://stackoverflow.com/a/20188292/52499). –