Я пытаюсь разработать мое первое приложение для рельсов и, прежде чем перейти к реализации моих идей, я надеялся, что смогу помочь в планировании своей ассоциации.Планирование ассоциаций приложений Rails
Мое приложение будет образовательным инструментом, и у меня есть некоторые базовые функции, которые мне нужно реализовать. Я хочу иметь студентов, которые могут зарегистрироваться и создать курсы. В рамках этих курсов будет один пользователь, который является учителем, а остальные - учениками. В рамках курса будут выполняться задания, которые создает учитель, и что пользователи должны сделать заявку. Это основы. В конце концов, я хочу добавить больше функциональности, но на данный момент мне просто нужен набор оснований.
Вот мои идеи до сих пор о том, что ассоциации должны выглядеть следующим образом:
class User < ActiveRecord::Base
has_many :enrollments
has_many :courses, :through => :enrollments
end
class Course < ActiveRecord::Base
has_many :enrollments
has_many :users, :through => :enrollments
end
class Enrollment < ActiveRecord::Base
belongs_to :user # foreign key - user_id
belongs_to :course # foreign key - course_id
end
Однако, я бегу в моей стене неопытности в данный момент с тем, как правильно обрабатывать остальную часть ассоциаций в эта точка. Возможно, я мог что-то взломать, но я предпочел бы сделать это как можно лучше в первый раз.
Как обращаться с ассоциациями, связанными с назначениями и представлениями? Предположительно, к ним должно относиться представление ученика, но оно также связано с назначением внутри класса. Задания начинаются в рамках курса, но также тесно связаны с пользователем.
И наконец, как лучше всего обращаться с отношениями между пользователем и классом, который они создают? Пользователь создает курс. Этот курс принадлежит им? Должен ли я просто добавить столбец в таблицу курса для хранения идентификатора создателя? И т.д.
Спасибо за помощь.
спасибо за предложение по разделению учителей и студенческая логика. Я обязательно посмотрю. Не могли бы вы указать мне на какие-либо ресурсы о том, как справиться с разделением учителя и учеников из модели пользователя. У меня уже есть модель пользователя, и было бы здорово просто вывести эту модель. И спасибо вам за ваш ответ в целом. – Mike
Вы можете начать здесь: http://code.alexreisner.com/articles/single-table-inheritance-in-rails.html –