【发布时间】:2011-12-29 16:30:56
【问题描述】:
我刚刚将一个应用推送到了生产 Heroku 环境。
基本上有一个Bus 模型,它有一个seats 属性
class Bus < ActiveRecord::Base
attr_accessible :seats, # other attributes
end
现在我有一个 JavaScript 前端,它将新总线的 JSON POST 到 buses#create 操作。
当我尝试创建总线时,ActiveRecord 一直遇到错误:
: 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'
参数达到控制器动作正常。我可以记录它们并得到以下信息:
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}}
我检查了Bus 表实际上有seats 列,它确实有(我在 Heroku 控制台中运行了这个):
> Bus.column_names
=> ["id", "name", "route_id", "created_at", "updated_at", "price", "departure_time", "trip_distance", "trip_duration", "seats"]
当然,我已经尝试过迁移和加载数据库架构。我检查了attr_accessible :seats 的设置是否正确。
还有其他想法吗?
我在 Heroku Cedar 堆栈上运行 Rails 3.1.1。在我的本地机器上一切正常。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 activerecord heroku ruby-on-rails-3.1