Если роль - таблица ИППП:
class Role< ActiveRecord::Base
self.inheritance_column= :role_type
end
А ученик и советник наследуют роль:
class Student< Role
end
class Counselor< Role
end
А StudentDetail хранит дополнительную информацию об одном студенте:
class StudentDetail< ActiveRecord::Base
belongs_to :student
end
И пользователь может быть и студентом, и консультантом:
class User< ActiveRecord::Base
has_many :roles
has_one :student
has_one :counselor
end
А число - это столбец в StudentDetail,
И role_id - это столбец в StudentDetail
Можно ли заставить работать следующий синтаксис?
User.first.student.number
Значение: «если в таблице ролей есть один студент с user_id == User.first.id, то User.first.student не имеет значение null и если StudentDetail имеет role_id == Student.where (" user_id =? ", User.first .id) .first.id, заставьте "student" действовать как запись StudentDetail и получить поле номера. "