0

そこで、学生/家庭教師という 2 種類のユーザーを持つ Rails アプリを開発しています。しかし、私は User モデル (認証に cancan を使用) を 1 つしか持っていないので、ミーティング モデル (講師 1 人と生徒 1 人) をセットアップしようとすると、どうすればよいでしょうか? これはモデルです:

class Meeting < ActiveRecord::Base
  belongs_to :student
  belongs_to :tutor
  attr_accessible :price, :subject, :time
end

スキーマの関連部分は次のとおりです。

  create_table "meetings", :force => true do |t|
    t.string   "subject"
    t.integer  "student_id"
    t.integer  "tutor_id"
    t.datetime "time"
    t.integer  "price"
    t.datetime "created_at", :null => false
    t.datetime "updated_at", :null => false
  end

  add_index "meetings", ["student_id"], :name => "index_meetings_on_student_id"
  add_index "meetings", ["tutor_id"], :name => "index_meetings_on_tutor_id"

生徒とチューターを含む 2 つの余分なモデルを持たなくても、これらのラベルを使用できますか?

4

2 に答える 2

1

それを行う1つの方法..

class Meeting < ActiveRecord::Base
  belongs to :student, class_name: 'User'
  belongs to :tutor, class_name: 'User'

class User < ActiveRecord::Base
  has_many :meet_with_students, class_name: 'Meeting', foreign_key: :tutor_id
  has_many :students, through: :meet_with_students, source: :student
  has_many :meet_with_tutors, class_name: 'Meeting', foreign_key: :student_id
  has_many :tutors, through: :meet_with_tutors:, source: :tutor
于 2013-07-25T20:34:50.603 に答える
0

あなたが探していると思いますclass_name

class Meeting < ActiveRecord::Base
  belongs_to :student, class_name: "User"
  belongs_to :tutor, class_name: "User"
end
于 2013-07-25T20:31:53.277 に答える