2013-07-25 23 views
0

所以我正在開發一個rails應用程序,它將有兩種用戶,學生/導師。但我只有一個用戶模型(使用cancan進行身份驗證),所以當我嘗試設置會議模型(其中有一位導師和一位學生)時,我該怎麼做?這是模型:引用在使用自定義名稱的Rails中?

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" 

,而不必有含學生和教師兩個額外的模型,我可以使用這些標籤?

+0

如果你不是很遠到項目,我會考慮做家教和學生分開模型。這可能會讓事情變得更容易。 – Alfo

回答

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 
0

我認爲你正在尋找class_name

class Meeting < ActiveRecord::Base 
    belongs_to :student, class_name: "User" 
    belongs_to :tutor, class_name: "User" 
end 
相關問題