2

私はレッスンテーブルをモデル化しています。レッスンはユーザー、教師、レッスンの作成者に属しています。また、レッスンにはユーザーである多くの生徒が参加できます。

だからこんな感じになります

class Lesson < ActiveRecord::Base
  belongs_to :user
  has_many :users
end

最初のユーザー教師とユーザーの学生のコレクションに電話をかけたいのですが、http: //guides.rubyonrails.org/association_basics.htmlのドキュメントを読みましたが、必要なものが見つかりません。

4

2 に答える 2

4

これはあなたが望むものを持っているはずです:http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#method-i-belongs_to

私はあなたがclass_nameオプションを望んでいると思います:

class Lesson < ActiveRecord::Base
  belongs_to :teacher, class_name: "User"
  has_many :students, class_name: "User"
end
于 2012-12-20T18:11:39.403 に答える
0

現在のコードでは、すべてのユーザーがレッスンの「所有者」(教師)になる可能性があります。代わりに、「ユーザー」クラスと1:1の関係を持つ2つの追加クラス「学生」と「教師」が必要です。

これはより適切に適合します:

class Teacher < ActiveRecord::Base
  has_one :user
end

class Student < ActiveRecord::Base
  has_one :user
end

class Lesson < ActiveRecord::Base
  belongs_to :teacher
  has_many :students
end
于 2012-12-20T18:14:47.107 に答える