DEV Community πŸ‘©β€πŸ’»πŸ‘¨β€πŸ’»

Donna Hogan
Donna Hogan

Posted on • Originally published at Medium on

Rails Portfolio Project

This Rails portfolio project borrows the theme from my Sinatra project, but is rebuilt from scratch to have nested resources, more complex relationships, and more features. My Sinatra project was only for CRUDing starships. This project has two models (Crew and Ships) that have a bi-directional has_many_through association via Assignments, which acts as the join table, and can be thought of as one particular crew person’s role on one particular ship. This schema gives us easy access to listing all the crew member’s assigned to a ship, or where are crew member is currently assigned. Sounds so reasonable!

Quick tip: when generating seed data for users with has_secure_password through BCrypt, make the password_digest attribute equal to BCrypt::Password.create('someString'), and then you can use someString to log in when you’re testing your app!

Also, forms are more than just a pretty face! Rails form helpers sometimes makes me forget that the form dictates the structure of the params hash. At first I had checkboxes for crew people in the new assignments form, but kept getting an error message about the crew_id not existing (which it totally did), but as soon as I switched to a drop down menu the problem was solved. Makes sense in retrospect since an assignment only has room for one crew_id, so checkboxes make no sense in that context, and set the params hash up incorrectly.

Check out the GitHub repo, or my video walk-through !

Originally published at donnacodes.com on December 2, 2017.

Top comments (1)

Collapse
didin1453fatih profile image
Comment marked as low quality/non-constructive by the community. View Code of Conduct
Didin πŸ‘¨β€πŸ’»

I think you can combine Rails and dbdesigner.id as your database designer. This can make your project readable and clear documentation.

Now it's your turn.

Β 
Join DEV and share your story.