2011-10-21 12 views
4

私は現在、多くの関係に多くの非常にシンプルで、3.0.9をRailsアプリケーション持っている:Rails 3.1 - has_and_belongs_to_manyは推奨されていませんか?

class User < ActiveRecord::Base 
    has_and_belongs_to_many :stores, :join_table => "users_stores" 
end 

私は次の警告は、あらゆる場所にポップアップ取得しています:

DEPRECATION警告:has_and_belongs_to_manyアソシエーションの結合テーブルに追加の属性を追加することは推奨されなくなり、Rails 3.1で削除されます。代わりにhas_many:throughアソシエーションを使用してください。

事は、私が参加し、テーブルの上に余分な属性を持っていない、次のとおりです。

sqlite> .schema users_stores 
CREATE TABLE "users_stores" ("user_id" integer, "store_id" integer); 

は完全にRailsの3.1で非推奨has_and_belongs_to_manyアソシエーションですか?私は3.1へのアップグレードを試みましたが、まだ更新されていない宝石を使用していますので、もう長い間待っていますが、理想的にはコードの一部分を手に入れたいと思います。

答えて

3

廃止されましたが、それでもなお存在します。 をチェックしても、結合テーブルに属性があるかどうかはわかりません。それはまだ動作します。

+0

OK、素敵な簡単な答え!さらに、ActiveSupport :: Deprecation.silenced = trueを設定して、rspecテストが実行されるたびにこのメッセージが繰り返されるのを避けるようにしました。推奨されない警告を無効にするためのより詳細な方法があるかどうかを知っていますか? – asc99c

+0

@ asc99c私はそうではありません。申し訳ありません:/ –

+1

has_manyにリファクタリングする時間を取ることをお勧めします:今まで。可能であれば、廃止の警告を一切表示しないようにしてください。 –