I am currently building an application where part of it is an invitation / enrollment system. Currently there are "courses" and "classrooms" in the system. A "course" is thus some course, and a "classroom" is a specific instance of a course. F.ex. there might be 1 course, but 3 classroom instances of that course, having different start/end dates, slightly different/updated materials, etc. Now, an "employee" can be invited to participate in a "course", but the "employees" themselves, has to choose a specific "classroom" to enroll in. So, the employee goes to his/hers profile page, where the invitations show up. Now the employee clicks an invitation, and can then choose a specific classroom to enroll in. This should obviously create an enrollment. But, it should also get rid of the invitation, since it has been "accepted". Currently i have it set so that "employees" has many "classrooms" through "enrollments". Also, an "employee" has many "courses" through "invitations". This doesn't seem right though, since when an employee clicks some invitation, they will be taken to an enrollment page(enrollment controller), where an enrollment will be created. As the enrollment is created, the invitation should be deleted though. So right now i guess the enrollment controller should be able to create enrollments and delete invitations. This seems like bad design. I am pretty happy with the relation between classrooms and employees, but the relation between employees and invitations seems bad. How would you do it?
Ruby on rails invitation / enrollment
783 Views Asked by Kasper At
2
There are 2 best solutions below
Related Questions in RUBY-ON-RAILS
- How to display legend box in tooltip text for amCharts 5 in Rails application?
- how to integrate cashfree payment gateway in ruby on rails project
- RSpec Capybara throwing Selenium error when trying to click a button with browser confirm
- rails minitest not picking up fixture properly, instance variable not percolating
- Duplicate GET requests - Rails & Heroku
- How to stub out current_user in JWT model for Rspec?
- NameError in Home#index
- Verifying Google Identity OAuth2 token with Ruby
- Error WebMock::NetConnectNotAllowedError in testing with stub using minitest in rails (using Faraday)
- why is mission_control-jobs erroring with load path error?
- Rescuing validation errors from a polymorphic association
- New error on random number assigned to local variable , Rails
- How to fix error in model with gem lockbox
- Images uploaded via Active Storage not displaying in Active Admin or on certain devices
- controller test_methods generating two errors intermittently
Related Questions in RUBY
- how to integrate cashfree payment gateway in ruby on rails project
- RSpec Capybara throwing Selenium error when trying to click a button with browser confirm
- Duplicate GET requests - Rails & Heroku
- convert csv file with json data inside to a column, rows table in 2nd csv file
- Installing dependencies from a gemspec file
- Verifying Google Identity OAuth2 token with Ruby
- Java code of AES/GCM/NoPadding encryption algorithm with authentication tag
- How to fix error in model with gem lockbox
- Cannot install Ruby Gem on Window
- use logstash filter ,aes gcm encrypted in ruby,but cannot decrypted in java
- In Rails 7, what is the right ActiveRecord callback to use if I need to prevent (or rollback) persistance on error?
- How can I go through an array and still remove elements from it
- Nokogiri only returning 5 results
- How do I get the fullscreen mode in firefox?
- undefined group option when using branch reset group regex in Ruby
Related Questions in INVITATION
- Symfony 2 how to send invitation
- Invitations between the two models Rails
- Follow BETA Inviter on Sign Up
- No facebook request_ids when click invitation first time
- OnInvitationReceivedListener does not fire reliably (if at all) - Google Play Game Services Button Clicker
- Google play game services invitations get lost
- invite users via devise without creating a new user until the invitation is accepted
- Unable to send app invitation to facebook friends
- Get a list of all GKInvite to list them in a TableView
- GKMatchRequest invitation not showing in other device
- Cant receive game center invitations
- Game Center invitation programmatically with GKInvite list
- How to manage Game Center Invitation custom view
- Can't send invitation using linkedin-j library
- ios 6.1 how to send a friend request to try my app
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Why don't you use simply a
statusattribute in your model to managed the invitation procedure?I'll use the following models:
Employee, the user of the app;Course, the course to be followed;Classroom, belonging to aCourse(a course having manyclassrooms).Participation, making the link between the employee, the course and the classroom. This model would have a status depending on the evolution of the participation to the course:invitedwhen the employee has been invited,enrolledwhen the employee has chosen a classroom, etc.A skeleton of the
Participationmodel would be:With a uniqueness requirement for the employee given the course and the classroom. And may be only for course itself without considering the classroom depending on your choice.
I'll add a unique index on
Participationstable:At the invitation the participation instance would be created (status
invited) with the correspondingemployee_idand thecourse_id,classroom_idbeing left empty. At the enrollement, the participation would be updated with theclassroom_idand statusenrolled.Does it fit your needs?