0

ActiveRecord アソシエーションをセットアップしようとしています。以下は私の 2 つのクラスで、ここで読んだforeign_key オプションを指定しています: api.rubyonrails.foreignkey

学校

class School < ActiveRecord::Base
     has_many :students, :foreign_key => :institutionid
     attr_accessible :name, :city, :state, :zipcode, :institutionid
end

学生

class Student < ActiveRecord::Base
     belongs_to :school, :foreign_key => :institutionid
     attr_accessible :firstname, :lastname, :institutionid
end

データベース スキーマ

dbo.学校{id:int, institutionid:int, name:nvarchar(255), city:nvarchar(255), state:nvarchar(2), zipcode:nvarchar(25),}

dbo.学生{id:int, institutionid:int, firstname:nvarchar(255), lastname:nvarchar(255)}

上記にアクセスしようとすると<% debug @school.students %>、ページに次の出力が表示されます--- []

誰かが私が間違っていることを見つけるのを手伝ってくれますか? または、問題をトラブルシューティングする他の方法を提供してください。ありがとう!

4

1 に答える 1

1

あなたは、institutionid が 433 のすべての学生を求めていると思います。しかし、institutionid は School の主キーではありません (どうしてだろうか?)。したがって、school.students と言うと、クエリは「institutionid」ではなく「id」の値を使用します。学生の関連付けを次のように変更してみます。

belongs_to :school, :foreign_key => :institutionid, :primary_key => :institutionid

学校を次のように変更します。

has_many :students, :foreign_key => :institutionid, :primary_key => :institutionid
于 2013-06-08T04:25:47.443 に答える