0

Rails 2 プロジェクトでの私の関連付けは次のとおりです。

class Role < ActiveRecord::Base
  belongs_to :user
  has_many :attrs, :through => :user, :dependent => :destroy
end

class User < ActiveRecord::Base
  has_many :roles, :order => 'id DESC', :dependent => :destroy
  has_many :attr, :dependent => :destroy
end

class Attr < ActiveRecord::Base
  belongs_to :user
  has_many :roles, :through => :user
end

プロジェクトを Rails 3 にアップグレードしています。Rails 3 でユーザーを削除しようとすると、次のエラーが発生します。

ソース リフレクション クラス 'Attr' が :has_many を介して 'User' に関連付けられているため、関連付け 'Role#attrs' を変更できません。

しかし、同じことで、Rails 2 ではユーザーは問題なく削除されます。私は Rails 2 で作業したことがないので、ここで質問する必要がありました。

これを修正するにはどうすればよいですか? 他の回答を確認しましたが、私のケースには当てはまらないようです。

4

1 に答える 1

0

ユーザーモデルでは has_many :attr, :dependent => :destroy

has_many :attrs, :dependent => :destroy である必要があります

于 2013-09-06T10:38:24.627 に答える