1

現在のデータベース設定には、ユーザーとサーバー テーブルがあります。Rails コンソールから current_user.server のようなことを行うことはできますが、resque ワーカー内からこれを行うことはできません。ただし、resque worker の次のコードにより、 current_user.name を呼び出すことができます。

current_user = User.find(current_id)

current_user の ID をワーカーに渡すことで、これを行うことができました。ユーザーのサーバーテーブルにも同じプロセスを使用できると思いました。これは has_one user->server 関係です。

だから私はこれを試しました:

current_server = Server.where(:user_id => current_user.id)
current_server[:cloudserver] = 123 #Just an example number
current_server.save

最初の行は正常に機能し、正しいサーバー行が返されました。ただし、2 行目も含めると、エラーが発生します。

TypeError can't convert Symbol into Integer

cloudserver 列を整数型として作成したことはわかっており、resque ワーカーに rails 環境をロードしたことを確認しました。Rails コンソールを使用して正しい番号を設定できます。

current_user.server[:cloudserver] = 123
current_user.save

resque ワーカーの外に設定できるので、resque の問題であると確信しています。

ああ、それが役立つ場合は、レール 3.1rc4 も実行しています。皆さんありがとう!

4

0 に答える 0