I would have a User model with the basic information and then something like this:
class User
has_many :course_students
has_many :student_courses, through: :course_students, class_name: "Course"
has_many :course_tutors
has_many :tutored_courses, through: :course_tutors, class_name: "Course"
end
class Course
has_many :course_students
has_many :students, through: :course_students, class_name: "User"
has_many :course_tutors
has_many :tutors, through: :course_tutors, class_name: "User"
end
class CourseStudent
belongs_to :course
belongs_to :student, class_name: "User"
end
class CourseTutor
belongs_to :course
belongs_to :tutor, class_name: "User"
end
This way a user can easily be a tutor and student and just has to have the shared information. I'd probably insert dedicated tutor/student models, if the need arises.