1

建物、アパート、住宅、およびユーザーが何らかの理由でうまく連携していません。何が欠けているのかわからない。

class Building < ActiveRecord::Base
  attr_accessible ...

  has_many :apartments, inverse_of: :building
  ...
end


class Apartments < ActiveRecord::Base
  ...
  belongs_to :building, inverse_of: :apartment
  has_many :residences, inverse_of: :apartment
  ...
end


class Residence < ActiveRecord::Base
  ...
  belongs_to :apartment, inverse_of: :residence
  belongs_to :user, inverse_of: :residence
  ...
end


class User < ActiveRecord::Base
...
  has_many :residences, inverse_of: :user
...
end

Rails コンソールでは、逆関連付けに問題があります。

a.クラス

=> アパート(id: 整数、Building_id: 整数、...、created_at: 日時、updated_at: 日時)

建物

ActiveRecord::InverseOfAssociationNotFoundError: /Users/[me]/.rvm/gems/ruby-1.9.3-p194@r3t2/gems/activerecord-3.2.8/ から建物 (: 建物内のアパート) の逆関連付けが見つかりませんでしたlib/active_record/reflection.rb:246:in `check_validity_of_inverse!'

h.クラス

=> Residence(id: 整数、apartment_id: 整数、user_id: 整数...、created_at: 日時、updated_at: 日時)

h.user

ActiveRecord::InverseOfAssociationNotFoundError: /Users/[me]/.rvm/gems/ruby-1.9.3-p194@r3t2/gems/activerecord-3.2.8/ からユーザー (:residence in User) の逆関連付けが見つかりませんでしたlib/active_record/reflection.rb:246:in `check_validity_of_inverse!'

私は続けることができました。これらのクラス間の関係は、逆にハングアップしているようです。ここ数時間、いろいろ試しましたが、ついに「ママ!」と呼んでいます。どんなリードにも非常に感謝します。

4

2 に答える 2

7

のアパート協会Buildingは複数形なので、次を追加する必要がありますs

class Apartments < ActiveRecord::Base
  ...
  belongs_to :building, inverse_of: :apartments
  has_many :residences, inverse_of: :apartment
  ...
end
于 2013-05-04T20:44:03.477 に答える