2

プログラムのどこでもActiveRecord::MissingAttributeErrorエラーがランダムに発生し続けます。私は乗客(30インスタンス)をnginxで実行しています。私は開発者にこの問題はありません。キャッシュマネーを削除すると、本番環境で正常に機能します。

これはエラーメッセージです:

ActiveRecord::MissingAttributeError (missing attribute: deposit_amount):
  lib/econveyance_pro/accounting/bsoa.rb:96:in `collect_deposit'
  lib/econveyance_pro/accounting/bsoa.rb:24:in `calculate'
  app/controllers/accounting_controller.rb:213:in `calculate_buyer_file_accounting'
  app/controllers/accounting_controller.rb:175:in `generate_accounting'
  app/controllers/accounting_controller.rb:153:in `generate_accounting_and_save'
  lib/econveyance_pro/document_manager.rb:18:in `temporary_tables_xml'
  lib/econveyance_pro/document_manager.rb:17:in `each'
  lib/econveyance_pro/document_manager.rb:17:in `temporary_tables_xml'
  app/controllers/document_manager_controller.rb:40:in `xml'
  /opt/ruby/lib/ruby/gems/1.8/gems/passenger-2.2.8/lib/phusion_passenger/rack/request_handler.rb:92:in `process_request'
  /opt/ruby/lib/ruby/gems/1.8/gems/passenger-2.2.8/lib/phusion_passenger/abstract_request_handler.rb:207:in `main_loop'
  /opt/ruby/lib/ruby/gems/1.8/gems/passenger-2.2.8/lib/phusion_passenger/railz/application_spawner.rb:385:in `start_request_handler'
  /opt/ruby/lib/ruby/gems/1.8/gems/passenger-2.2.8/lib/phusion_passenger/railz/application_spawner.rb:343:in `handle_spawn_application'
  /opt/ruby/lib/ruby/gems/1.8/gems/passenger-2.2.8/lib/phusion_passenger/utils.rb:184:in `safe_fork'
  /opt/ruby/lib/ruby/gems/1.8/gems/passenger-2.2.8/lib/phusion_passenger/railz/application_spawner.rb:341:in `handle_spawn_application'
  /opt/ruby/lib/ruby/gems/1.8/gems/passenger-2.2.8/lib/phusion_passenger/abstract_server.rb:352:in `__send__'
  /opt/ruby/lib/ruby/gems/1.8/gems/passenger-2.2.8/lib/phusion_passenger/abstract_server.rb:352:in `main_loop'
  /opt/ruby/lib/ruby/gems/1.8/gems/passenger-2.2.8/lib/phusion_passenger/abstract_server.rb:196:in `start_synchronously'
  /opt/ruby/lib/ruby/gems/1.8/gems/passenger-2.2.8/lib/phusion_passenger/abstract_server.rb:163:in `start'
  /opt/ruby/lib/ruby/gems/1.8/gems/passenger-2.2.8/lib/phusion_passenger/railz/application_spawner.rb:209:in `start'
  /opt/ruby/lib/ruby/gems/1.8/gems/passenger-2.2.8/lib/phusion_passenger/spawn_manager.rb:262:in `spawn_rails_application'
  /opt/ruby/lib/ruby/gems/1.8/gems/passenger-2.2.8/lib/phusion_passenger/abstract_server_collection.rb:126:in `lookup_or_add'
  /opt/ruby/lib/ruby/gems/1.8/gems/passenger-2.2.8/lib/phusion_passenger/spawn_manager.rb:256:in `spawn_rails_application'
  /opt/ruby/lib/ruby/gems/1.8/gems/passenger-2.2.8/lib/phusion_passenger/abstract_server_collection.rb:80:in `synchronize'
  /opt/ruby/lib/ruby/gems/1.8/gems/passenger-2.2.8/lib/phusion_passenger/abstract_server_collection.rb:79:in `synchronize'
  /opt/ruby/lib/ruby/gems/1.8/gems/passenger-2.2.8/lib/phusion_passenger/spawn_manager.rb:255:in `spawn_rails_application'
  /opt/ruby/lib/ruby/gems/1.8/gems/passenger-2.2.8/lib/phusion_passenger/spawn_manager.rb:154:in `spawn_application'
  /opt/ruby/lib/ruby/gems/1.8/gems/passenger-2.2.8/lib/phusion_passenger/spawn_manager.rb:287:in `handle_spawn_application'
  /opt/ruby/lib/ruby/gems/1.8/gems/passenger-2.2.8/lib/phusion_passenger/abstract_server.rb:352:in `__send__'
  /opt/ruby/lib/ruby/gems/1.8/gems/passenger-2.2.8/lib/phusion_passenger/abstract_server.rb:352:in `main_loop'
  /opt/ruby/lib/ruby/gems/1.8/gems/passenger-2.2.8/lib/phusion_passenger/abstract_server.rb:196:in `start_synchronously'

預金金額は私のデータベースに存在します。

4

4 に答える 4

1

データベース テーブル スキーマを変更しましたか? memcached オブジェクトはおそらく古いスキーマを使用しており、クリアする必要があります。

$cache.flush_all を使用して memcached をフラッシュするか、「telnet localhost 11211」経由で「flush_all」を memcached に送信するか、memcached を再起動します。

于 2010-04-23T01:08:35.707 に答える
0

生産上の問題かもしれないと思います。本番環境でアプリケーションを起動すると、すべてのファイルのアプリケーション内にキャッシュが作成されます。Uはそれを完全には説明しませんでしたが、問題はUが移行をロールし、サーバーを再起動しなかったことが原因だと思います。

これが当てはまる場合は、uが使用しているキャッシュに、この属性へのドーム参照がまだ存在していない可能性があります。=)

于 2012-11-09T18:40:56.793 に答える
0

不足している属性がデータベースに存在する可能性がありますが、スキーマと移行には存在しますか?

SQLクエリを介して自分でアクセスしてみてください。コンソールで、両方で可能であれば、SQLのスペルミスについてコントローラーを確認してください

于 2010-01-10T01:25:23.477 に答える
0

問題は、キャッシュマネーの使用を停止すると、コードのこの部分が問題なく正常に動作することです。キャッシュマネーを有効にするとすぐにこのエラーが発生します。クエリを数回実行しました。

キャッシュマネーがオンになっている場合、さまざまな属性のプログラムのランダムな領域でもこのエラーが発生します。

于 2010-01-11T16:32:37.440 に答える