Ruby on rails ActiveRecord::UnknownAttributeError?

Ruby on rails ActiveRecord::UnknownAttributeError?,ruby-on-rails,ruby-on-rails-3,activerecord,heroku,ruby-on-rails-3.1,Ruby On Rails,Ruby On Rails 3,Activerecord,Heroku,Ruby On Rails 3.1,我刚刚把一个应用程序推到了生产环境中 基本上有一个Bus模型,它有一个seats属性 class Bus < ActiveRecord::Base attr_accessible :seats, # other attributes end 参数达到控制器动作良好。我可以记录它们,并获得以下信息: The bus parameters received: {"seats"=>"24", "departure_time(1i)"=>"2011", "departure_ti

我刚刚把一个应用程序推到了生产环境中

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

class Bus < ActiveRecord::Base
  attr_accessible :seats, # other attributes
end
参数达到控制器动作良好。我可以记录它们,并获得以下信息:

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控制台中运行了这个):

当然,我也尝试过迁移和加载数据库模式。我已经检查了
attr\u accessible:seats
是否也设置正确

还有其他想法吗

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

试试这个

attr_reader :seats
attr_accessor :seats
而不是

attr_accessible :seats

这是老生常谈,但我早上又试了一次,效果非常好!我怀疑这可能是某种传播问题。

我的Heroku应用程序在生产中也遇到了同样的问题,但我的几乎相同的应用程序在登台时却没有

有什么区别?我的登台应用程序只有1个web dyno,而不是2个

因此,我手动将我的生产应用程序缩小到0个web动态,然后再恢复到2个


砰!问题解决了

在看到上面莱托的评论之前,我一直在为这件事发愁

heroku restart --app staging

为我解决了这个问题。

这个问题似乎一夜之间就解决了。可能是传播问题或其他问题。无论如何,谢谢。当这种情况发生时,请尝试“heroku重新启动”。我在运行迁移后遇到了这个问题,但重新启动解决了问题。我尝试了heroku restart,但它对我不起作用,所以我在谷歌上搜索了这个问题,发现了这篇文章,然后意识到,
heroku restart
默认为我的登台环境。通过以下方式强制我的生产应用程序:
heroku重新启动——应用程序myproductionapp
工作正常!这一定是因为您部署了应用程序,运行了迁移。但该应用程序已经在运行,因此它没有注意到db scheme中的更改。也就是说,你必须这么做。
attr_accessible :seats
heroku restart --app staging