Acabo de empujar una aplicación a un entorno de producción Heroku.ActiveRecord :: UnknownAttributeError?
Básicamente hay un modelo Bus
y tiene un atributo
class Bus < ActiveRecord::Base
attr_accessible :seats, # other attributes
end
seats
Ahora tengo una interfaz JavaScript, que JSON de la POST para los nuevos autobuses a la acción buses#create
.
ActiveRecord mantiene encuentre un error al intentar crear 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'
Los parámetros están llegando a la multa acción del controlador. Puedo abrir una sesión ellos y obtener el 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}}
he comprobado que la tabla Bus
en realidad tiene la columna de la seats
y lo hace (me encontré con esto en la consola Heroku):
> Bus.column_names
=> ["id", "name", "route_id", "created_at", "updated_at", "price", "departure_time", "trip_distance", "trip_duration", "seats"]
Y de Por supuesto, he intentado migrar y cargar el esquema de la base de datos. Comprobé que el attr_accessible :seats
también está configurado correctamente.
¿Alguna otra idea?
Estoy ejecutando Rails 3.1.1 en la pila de Cedar de Heroku. Todo funciona bien en mi máquina local.
Cuando esto sucede, intente con un 'reinicio heroku'. Acabo de tener este problema después de ejecutar una migración, pero al reiniciar resuelvo el problema. – Leito
Intenté 'heroku restart' y no funcionó para mí, así que busqué en Google este problema y me encontré con esta publicación y luego me di cuenta de que' heroku restart' está predeterminado en mi entorno de ensayo. forzando mi aplicación de producción por: 'heroku restart --app myproductionapp' funcionó! – DJTripleThreat
Esto debe haber sido porque implementó la aplicación, ejecutó las migraciones. Pero la aplicación ya se estaba ejecutando, por lo que no notó los cambios en el esquema db. Es decir, tenía que [reiniciar] (http://stackoverflow.com/a/15743272/52499) [it] (http://stackoverflow.com/a/20188292/52499). –