All threads / How do I remove associated records?

Ask A Question

Notifications

You’re not receiving notifications from this thread.

How do I remove associated records?

azal-io asked in Rails

I have these associations.

Course
has_many :assignments, class_name: 'CourseManagement::Assignment'
has_many :students, through: :assignments, source: :student

Assignment:
belongs_to :course, class_name: 'CourseManagement::Course'
belongs_to :student, class_name: 'CourseManagement::Student'

Attendance
belongs_to :student, class_name: 'CourseManagement::Student'
belongs_to :session, class_name: 'CourseManagement::Session'

Student:
has_many :assignments, class_name: 'CourseManagement::Assignment'
has_many :courses, through: :assignments, source: :course

has_many :attendances, class_name: 'CourseManagement::Attendance'
has_many :sessions, through: :attendances, source: :session

Session:
belongs_to :course, class_name: 'CourseManagement::Course'

has_many :attendances, class_name: 'CourseManagement::Attendance'
has_many :students, through: :attendances, source: :student

What I want to do.

I have a feature that on Course form, users can select which students are taking the course.
Then when we access that course's session we can select which of these students attended to that session. The issue is when I remove student from the course, I also want that action remove all associated sessions with that student on that session.

So when again we add the student to course we don't see the student on that session.

Thanks

have you tried this? or some variation of dependent: :destroy on the model associations

has_many :students, through: :attendances, source: :student, dependent: :destroy

https://guides.rubyonrails.org/association_basics.html

Join the discussion

Want to stay up-to-date with Ruby on Rails?

Join 33,148+ developers who get early access to new tutorials, screencasts, articles, and more.

    We care about the protection of your data. Read our Privacy Policy.

    logo Created with Sketch.

    Ruby on Rails tutorials, guides, and screencasts for web developers learning Ruby, Rails, Javascript, Turbolinks, Stimulus.js, Vue.js, and more. Icons by Icons8

    © 2020 GoRails, LLC. All rights reserved.