ActiveRecord的:: UnknownAttributeError?

Dav*_*ite 12 activerecord ruby-on-rails heroku ruby-on-rails-3 ruby-on-rails-3.1

我只是将应用程序推送到生产Heroku环境.

基本上有一个Bus模型,它有一个seats属性

class Bus < ActiveRecord::Base
  attr_accessible :seats, # other attributes
end
Run Code Online (Sandbox Code Playgroud)

现在我有一个JavaScript前端,POST的JSON用于新的总线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'
Run Code Online (Sandbox Code Playgroud)

参数正在达到控制器动作.我可以记录它们,然后我得到了以下内容:

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}}
Run Code Online (Sandbox Code Playgroud)

我检查了Bus表实际上有seats列,它确实(我在Heroku控制台中运行它):

> Bus.column_names
=> ["id", "name", "route_id", "created_at", "updated_at", "price", "departure_time", "trip_distance", "trip_duration", "seats"]
Run Code Online (Sandbox Code Playgroud)

当然,我已经尝试迁移和加载数据库模式.我已经检查过它attr_accessible :seats也正确设置了.

还有其他想法吗?

我在Heroku Cedar堆栈上运行Rails 3.1.1.在我的本地机器上一切正常.

Dav*_*ite 10

这是陈词滥调,但我早上再次尝试,它完美无缺!我怀疑它可能是某种传播问题.

  • 发生这种情况时,请尝试'heroku restart'.我在运行迁移后遇到了这个问题,但重新启动解决了问题. (30认同)