February 5, 2018•
Let's Build: With Ruby on Rails - Discussion Forum
Continuing my long stent of Ruby on Rails builds is yet another build that focuses more on relationships in a real-world discussion forum application.
The application on the outside looks a little bleak but I promise there is a lot going on under the hood of which you could extend to be something very feature-rich.
Follow along with more videos below and be sure to download the source code to both explore the application and refer to it as you build alongside me.
The Goals of the application
To create a discussion forum with appropriate channels. Every discussion will belong to a channel and an author. The author can manage their own discussion by editing or deleting it at any time once logged in. If a user has admin privileges they can manage any user's discussions and replies. Any discussion can have many replies which are what makes forums so great for a community-based application.
Some key features of this application include:
- Markdown support and syntax highlighting for code snippets
- Admin user roles
- Prettier URLS
- Ajax replies ( load automatically on submit rather than a full page refresh )
We'll be making use of some gems we have in the past as well as some new ones to lend us a hand with the feature list above. At the time of writing and publish the Gemfile for this project resembles the following:
Below are the remaining parts of the screencast series. I invite you to follow along and actually type out the code to the best of your ability along with me. As always you should refer to the Github repo if you ever get stuck or need some code to copy in the process.
Shameless plug time
I have a new course called Hello Rails. Hello Rails is modern course designed to help you start using and understanding Ruby on Rails fast. If you're a novice when it comes to Ruby or Ruby on Rails I invite you to check out the site. The course will be much like these builds but a super more in-depth version with more realistic goals and deliverables. View the course!