12

私はプロダクションHeroku環境にアプリをプッシュしました。ActiveRecord :: UnknownAttributeError?

は基本的にBusモデルがあり、それが今、私はPOSTのJSON buses#createアクションに新しいバスのJavaScriptフロントエンドをseats属性

class Bus < ActiveRecord::Base 
    attr_accessible :seats, # other attributes 
end 

を持っていました。

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' 

パラメータは、コントローラのアクションの罰金に達しています。私はそれらをログに記録することができますし、私は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}} 

私は(私はHerokuのコンソールでこれを実行しました)Busテーブルが実際にseats列を持っており、それがないことを確認:

> 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を実行しています。私のローカルマシンではすべて正常に動作します。

答えて

10

それは陳腐な表現だが、私は午前中に再試行し、それが完璧に動作をお試しください!私はそれがある種の伝播の問題であったかもしれないと思う。

+29

この場合、「heroku restart」を試してください。私はちょうど移行を実行した後にこの問題を抱えていましたが、再起動して問題を解決しました。 – Leito

+1

私は 'heroku restart'を試してみましたが、それは私にとってはうまくいかなかったので、私はこの問題を探究し、この投稿に出会い、' heroku restart'が私のステージング環境にデフォルト設定されていることに気付きました。私の制作アプリを強制する: 'heroku restart --app myproductionapp'が働いた! – DJTripleThreat

+0

これは、アプリをデプロイして移行を実行したためであったに違いありません。しかし、アプリは既に稼働していたので、dbスキームの変更に気付かなかった。つまり、[再起動する](http://stackoverflow.com/a/15743272/52499)[it](http://stackoverflow.com/a/20188292/52499)でした。 –

0

この

attr_reader :seats 
attr_accessor :seats 

代わりの

attr_accessible :seats 
+0

問題は一晩中解決されたようです。伝播の問題などありました。とにかくありがとう。 –

3

プロダクションでは私のHerokuアプリで同じ問題が発生しましたが、ではと同じアプリケーションがステージングされていませんでした。

違いは何ですか?私のステージングアプリは唯一だから私は手動で当時2

BAMまで、0ウェブdynosに私の生産アプリをスケールダウン代わりに2

の1つのウェブダイノを持っていました!問題が解決しました。

1

上記のLeitoさんのコメントが見られるまで、私の髪を引き出していました。

heroku restart --app staging 

これは私のために修正されました。

+1

カントはこれが解決策だと信じていますが、とても感謝しています。ありがとう –