In this project, you'll get the opportunity to actually build a real rails application. It's not a trivially simple one either -- it's got a lot of wrinkles and things that you're not going to understand.
To be honest, you're kind of going into the deep end so don't worry if you don't understand what exactly you're doing in all the steps. The point here is to get familiar with the process of creating a Rails app, what things generally look like, and what you don't know. When you get to the end of this project, you can consider yourself remarkably persistent and resilient.
Because you'll be doing so much stuff that we haven't taught you yet, this is a good project to find a partner to work with on even though it's just following a tutorial.
- Follow the instructions atop the Google Homepage project to set up a Github repository for this project (of course you'll need to change the title).
- Do the Jumpstart Lab's Blogger Tutorial sections I0 through I4. Pay attention to any error messages you get, both planned (because the tutorial walks you through a common error-guided workflow) and unplanned (likely for things like spelling errors). You'll see all these messages again and again when you're building Rails apps, so it's helpful to start getting familiar with which portions of the message you should pay attention to (and maybe put into Google if you can't figure out what caused it).
- At the end of I3: Tags when you're attempting to delete your Article tags, you'll run into an error along the lines of "FOREIGN KEY constraint failed". You can solve this by enforcing Referential Integrity by applying the
dependent: :destroy
option for thehas_many
method in the right model. You can learn about it in This Entry of the Rails Guides - Here's a helpful gist with common Blogger problems if you're running into issues with routes, deleting, partials, and
redirect_to
. - If you're feeling ambitious, add in authentication in section I5.
- If you're feeling very ambitious, try doing the final Extras section I6.
- Don't forget to deploy your app to Heroku! Review Heroku deployment here.
Submit a link below to this file with your files in it by using a pull request. See the section on Contributing for how. Please include your partner's github handle somewhere in the description if you had one and they would like attribution.
Show Student Solutions
- Add your solution below this line!
- Leticia's solution
- Luky's Solution - View in browser
- Ian's Solution - View in browser
- Andrija Jelenkovic's Solution - View in browser
- Eljoey's Solution - View in browser
- nadjastojanovic's Solution
- Chris' Solution
- Alain Suarez's Solution - View in browser
- Sherman's Solution - View in browser
- Ben's Solution - View in browser
- Nicolás Nisoria's Solution - View in browser
- Daniel Prince's Solution - View in browser
- Sizigia's Solution - View in browser
- Neill Hennings's Solution - View in browser
- Sarp's Solution - View in browser
- Rudi Boshoff's Solution - View in browser
- Rafe Draper's Solution - View in browser - I0-I5
- Airi Chow's Solution - View in browser
- Billy's Solution - View in browser
- Daniel Ryu's solution - View in browser
- Jose Salvador's solution - View in browser
- todoroff's solution - View in browser
- George Zhu's solution - View in browser
- Om Dhiraj's Solution - View in browser
- Vollantre's Solution - View in browser
- Ricala's Solution - View in browser
- Braxton Lemmon's Solution - View in browser
- Jay Burbyga's Solution - View in browser
- Kevin Vuong's Solution - View in browser
- creep1g's Solution - View in browser
- ARaut9's Solution - View in browser
- Loumarven's Solution - View in browser
- Leonardo Vega's Solution - View in browser
- Bshowen's Solution
- Learnsometing's Solution - View in browser
- Tommy's Solution - View in browser
- Bojo's Solution - View in browser
- Yusuf Parak's Solution - View in browser
- WormCrew's Solution- View in browser
- Stefano Merazzi's Solution - View in browser
- Colton Shaheen's Solution - View in browser
- Chris Wegscheid's solution - View in browser
- jinja's solution - View in browser
- Hummeldon's Solution - View in browser
- Mohamed Elattar's Solution - View in browser
- Smetanca52's Solution - View in browser
- Ajani Stewart's Solution - View in browser
- Pietro Verdile's solution - View in browser
- prw001's Solution - View in browser
- SarfrazAnjum's Solution -
- Max Garber's Solution - View in browser
- Ngo Van Huong's Solution - View in browser
- Bojana Karakacev's Solution - View in browser
- Adrien Pardo's Solution - View in browser
- Ryafl's solution - View in browser
- Javier Machin's solution -View in browser
- Samuel Masters' solution - View in browser
- Fabien Kovacic's solution - View in browser
- Mat's solution - View in browser
- Omar Moataz's solution - View in browser
- rghost's solution - View in browser
- iamfranco's solution - View in browser
- danhofer's solution
- RaduMatees's solution
- rublen's solution - View in browser
- Jonathan Yiv's Solution - View in browser
- Akshat's Solution - View in browser
- Jason McKee's solution - View in browser
- justinckim3's solution
- endotnick's solution - View in browser
- ticklybanana's solution - View in browser
- Qin's solution - View in browser
- MGiagante's solution - View in browser
- Bn8's solution - View in browser
- Beachfern's solution - View in browser
- Kasey Z.'s solution - View in browser
- GuyInALabCoat's solution - View in browser
- Anya Finkelstein's solution - View in browser
- Ben Deltenre's solution - View in browser
- Demo318's solution - View in browser
- Dallaire's solution - View in browser
- Ryan Ford's solution - View in browser
- SadieD's solution - view in browser
- Breadbear's solution - View in browser
- Adong520's solution - view in browser
- Grey-Ghost's solution - view in browser
- xavier solution - view in browser
- holdercp's Solution - View in Browser
- BenBrewerBowman's Solution - View in Browser
- Webdev-burd's Solution - View in Browser
- Shane's Solution - View in Browser
- kdelante14's Solution - View in Browser
- Alexander Chalk's Solution - View in Browser
- dfan14051's Solution - View in Browser
- maz's Solution - View in Browser - I0-I6
- RichJDSmith's Solution - View in Browser
- mindovermiles262's Solution - View in Browser
- Oleh Sliusar's solution - view in browser
- yilmazgunalp's solution - view in browser
- theghall's solution - view in browser
- plinovodja's Solution - View in Browser
- DominicM's Solution - View in Browser (Bootstrap Edition)
- ToTenMilan's Solution - View in Browser
- sofiegraham's Solution - View in Browser
- Nikolay Dyulgerov's Solution - View in Browser
- Benjamin_Res Solution
- John Phelps's Solution - View in Browser
- Yash Anand's Solution - View in Browser
- Václav Škvařil's Solution - View in Browser
- ayushka's solution - View in Browser
- Chad Kreutzer's Solution - View in browser
- Siddharth Isaiah's Solution
- Jib's solution - View in browser
- Paul Dariye's solution
- Allen's solution - View in browser
- Angel Vargas' solution
- Jamie's solution - View in browser
- Arman Ghassemi's solution - View in browser
- Alan Russell's solution
- d2bit's solution
- Donald's solution
- Mark Westfall's solution - View in browser
- Tommy Noe's solution - View in browser
- Juan Vazquez's solution - View in browser
- Ruben Mendez's solution
- Michael Alexander's solution - View in browser
- Stanley Quek's solution
- Marina Sergeyeva's solution
- Jonathan Faulk's solution - View in browser
- Erithair's solution - View in browser
- James MacIvor's solution - View in browser
- Antonio Augusto's solution - View in browser
- insomniacode's solution - View in browser
- John Quarles' solution - View in browser
- Vidul's solution - View in browser
- Dorian Iacobescu's solution - View in browser
- Tyler Travers' solution - View in browser
- Chris Dziewa's solution
- Kate McFaul's solution - View in browser
- Andy Linteau's solution - View in browser
- Sami Bashraheel's solution
- Dominik Stodolny's solution - View in browser
- Kevin Weir's solution
- Jason Matthews' solution
- chasmani's solution - View in browser
- Kevin Mulhern's solution - View in browser
- Greg Park's solution - View in browser
- Alice Rhomieux's solution - View in browser
- Eleanor Weigert's solution - View in browser
- Julian Feliciano's solution - View in browser
- Chris Hall's solution - View in browser
- omokoro's solution - View in browser
- Ryan Jordan's solution
- Andrej Dragojevic's solution - View in browser
- eddie's solution - View in browser
- Rick Stewart's solution - View in browser
- Tamim Sookoor's solution - View in browser
- Josh Klein's solution
- John Lampe's solution - View in browser
- Andrea Kulbaba's solution
- Matias Pan's solution
- Dan Hoying's solution - View in browser
- AtActionParks's solution - View in browser
- Gb69010p's solution - View in browser
- Mark Viola's solution - View in browser
- Bhupendra Singh's solution - View in browser
- Joe Balsamo's solution - View in browser
- Cody Gipson's solution - View in browser
- Jason Symons' solution - View in browser
- Taylor Buchheit's solution - View in browser
- Tarun Johnson's solution - View in browser
- Arthur Vieira's solution - View in browser
- Thomas Vaeth's solution
- Brian Burke's solution
- Alex Tsiras' solution
- Angus Dobson's solution - View in browser
- dchen71' solution
- Scott Bobbitt's solution - View in browser
- Ho Won Cheng's solution - View in browser
- Florian Mainguy's solution - View in browser
- Panashe Fundira's solution - View in browser
- Dylan Bailey's solution
- Noah Prescott's solution - View in browser
- Paweł Cichoń solution - View in browser
- Chris Swanson's solution - View in browser
- Chris Watland's solution - View in browser
- Spekachu's solution
- Adrian Manteza's solution - View in browser
- Corey Cunningham's solution - View in browser
- Austin Mason's solution - View in browser
- andrewdbass' solution
- djhart's solution - View in browser
- Ricardo Villegas' solution (including Extras section) - View in browser
- Giorgos Mitsis's solution - View in browser
- Sandeep Navghane's solution - View in browser
- Michael Sotkin's solution
- James Brooks's solution - View in browser
- Andrew Park's solution
- Petros Kalogiannakis's solution - View in browser
- andrewdbass' solution
- djhart's solution - View in browser
- Ricardo Villegas' solution (including Extras section) - View in browser
- Alan Daniels's solution
- Corey Kazaks' solution - View in browser
- Skye Free's solution - View in browser
- Mateusz Staszczyk’s solution
- Dominik Chomicki's solution - View in browser
- Cecilia Avery solution - View in Browser
- Luke Walker's solution - View in browser
- Novneet's Solution
- Miguel Herrera's solution
- Matt Velez's solution - View in Browser
- Kelvin Stone's solution - View in browser
- Andrew Johnson's solution - [View in browser]
- Francisco Carlos's solution
- Jack Wilde's solution - view in browser
- YogAzathoth's solution - View in browser
- Kelly Downes' solution - View in browser
- Andrew Wilson's solution
- Jack Deegan's solution - View in browser
- Earth35's solution - View in browser
- Zac Conner's solution - View in browser
- DV's solution - View in browser
- Jean Merlet's solution - View in browser
- Jess Farley's solution - View in browser
- Hassan Mahmoud's solution - View in browser
- parhaml's solution - View in browser
- Joshua Berry's solution - View in browser
- Javeed Ishaq's solution - View in browser
- Peter Taggart's solution - View in browser
- Tony Vumbaca's solution - View in browser
- Johnny Rasnic's solution - View in browser
- CodyLBuffaloe's solution
- Fabricio Carrara's solution - View in browser Completed to I6 section.
- Tomas Rojo's solution - View in browser
- Deepak's solution - View in browser
- Josh Cummings' solution - View in browser
- Lani Huang's soluton - View in Browser
- Shala Qweghen's solution - View in Browser
- John Connor's solution - View in browser
- SlurmzMckenzie's Solution - View in browser
- dzero's solution - View in browser
- Oscar Y's solution - View in browser
- Ricardo Ferreira's solution - View in browser
- Piotr Ejsmont's solution - View in browser
- Joshua Hipple's solution - View in browser
- Odeson's solution - View in browser
- Tom Westerhout's solution - View in browser - Including I0 to I6
- Mason Embry's solution - View in browser
- Paul McGarry's solution - View in browser - Completed to I6
- Jiazhi Guo's solution - View in browser
- Ace Cassidy's solution - View in browser
- Derek Kwong's solution - View in browser
- Leo Soai-Van's solution - View in browser
- Armin Zierlinger's solution - View in browser
- Vanessa Tan's solution - View in browser
- Manu Phatak's solution - View in browser
- Karthik's Solution - View in browser
- Roy Chen's solution - View in browser
- HenrytheDJ's solution - View in browser - I0-I5
- Young Jeong's Solution - View in browser - I0-I6
- Loris Aranda's solution - View in browser
- Defgarden's solution - View in browser
- Adam Levin's solution - View in browser -I0-I5
- Dom Goj's solution - View in browser -I0-I6
- grzegorzzajac1989's solution - View in browser -I0-I5
- Mityadsch's solution
- Trevor Drury's solution -10-15
- Zach Beaird's solution - View in browser
- Mike Coon's solution - View in browser
- Jason Keeney's solution-View in browser
- David Chapman's Solution-View in browser
- Derek Scace's Solution - View in browser
- Yorick's Solution - View in browser
- Max Tsao's Solution
- Bishal Shrestha's Solution with multiple image upload - View in browser
- Christopher Corder's Solution - View in Browser
- Raiko Murulauk's Solution - View in Browser
- Ayon Pal's Solution - View in Browser
- Jerry Gao's solution - View in browser
- Veselin Ivanov's solution - View in browser - 10-15
- nmac's Solution - View in Browser
- Ryan Barnett's solution - View in Browser
- Samuel Langenfeld's solution - View in Browser
- Stefan P's solution - View in Browser
- Austin Norman's solution - View in Browser
- Justin V's solution - View in Browser
- Behdad Analui's solution - View in Browser
- Josh Vogel's solution - View in Browser
- jeff1st's solution - View in Browser
- huseins ghafari's solution - View in Browser
- Alan Cruse's Solution
- NIÑO MOLLANEDA's Solution - View in Browser
- Dustin Seright's Solution - View in Browser
- Dan Sack's Solution - View in Browser
- egg303's Solution - View in Browser
- Robert Szabo's Solution - View in Browser
- Parker Brown's Solution - View in Browser
- Øistein Haugland's Solution - View in Browser Completed to I5
- hallitee's Solution - view in Browser Completed to I5
- Pat's Solution - view in Browser
- Luján Fernaud's Solution - View in browser
- Viet's Solution - View in browser
- Andrew DeNike's Solution - View in browser
- Paritosh Sharma's Solution - View in browser
- EMuchynski's Solution - View in browser
- Eren Cataltepe's Solution
- uvieugo's Solution - View in Browser Up to part off I6
- Seederwood's Solution - View in Browser
- Anistor86's Solution - View in Browser
- Phucledien's Solution - View in Browser
- coryparham24's Solution - View in Browser
- Oliver Curting's Solution - View in Browser I0-I5
- Alex's Solution - View in Browser
- NJW's Solution - View in Browser
- Celestine's Solution - View in Browser
- Santiago Rodríguez Solution - View in Browser
- WilPoly's Solution - View in Browser Upto I5
- Bruno Parga's solution - to I5
- Eric Gonzalez solution - View in Browser
- Samitha's Solution - View in Browser I0-I5
- CurmudJim's Solution - View in Browser
- tonalmasher's solution - View in Browser I0 - I4
- Tshepo Mohlamonyane's solution - View in Browser I0 - I5
- Alexander Luna's solution - View in Browser 10 - 16
- Niko Caron's solution - View in Browser
- Jakub Cisowski's Solution - View in Browser I0-I5
- georich's solution
- Bridget Nyirongo's solutionView in Browser
- Josiah's solution - View in Browser
- HSaad's solution - View in Browser
- Aziz Yakubov's Solution - View in Browser
- Djokole's Solution - View in Browser
- Punnadittr's Solution - View in Browser
- Encolpius's Solution - View in Browser
- cartwheeler's Solution - View in Browser
- mojotron's Solution - View in Browser
- jmurinllo's Solution - View in Browser
- Ben Smyth's Solution
- spankie's Solution - View in Browser
- Amy Smith's Solution - View in Browser
- Felipe Parreira's Solution - View in Browser
- MrObele's Solution - View in Browser
- dmarkiewicz's Solution
- Dima Konoval's Solution - View in Browser
- Brendaneus' Solution - View in Browser
- TommyHoang's Solution - View in Browser
- Emil Dimitrov's solution - View in browser
- Husseyexplores' solution - View in browser
- bchalman's Solution - View in browser
- wuaangela's Solution - View in browser
- Ghassan's Solution - View in browser
- Slaven Karamatic's Solution - View in browser
- mwk913's solution - View in browser
- Edward Heath's solution - View in browser
- Leila Alderman's solution - View in browser
- Mohamed's Solution - View in browser
- tnharvey's Solution - View in browser
- Abdirahman's solution - View in browser
- GustavoRdz's solution
- Vitaly Osipov's solution - View in browser
- Valentino Valenti's Solution - View in browser
- Jahmzu's Solution - View in browser
- HanJosmer's Solution - View in browser
- Brett Bonnet's Solution - View in browser
- Wesley Wang's Solution - View in browser
- JamCry's Solution - View in browser
- vanny96's Solution - View in browser
- keskiviikko's Solution
- Ben Fowler's Solution - View in Browser
- LeonJMac's Solution - View in Browser
- Alex Krewson's Solution - View in Browser
- Barbara Lucas' Solution - View in Browser
- antdricot's Solution - View in Browser
- Doug Heatter's Solution - View in Browser
- JFAldridge's Solution - View in Browser
- Andre Roy's solution - View in Browser
- Muminjon's Solution - View in Browser Completed to I5
- Tronerta's Solution - View in Browser Completed to I6 + Extras
- DensenKG's solution - View in Browser
- Tristan Ross's solution - View in Browser
- Robert Dunbar's solution - View in Browser
- Sanyogita's solution - View in Browser
- Alex Gioffre's solution - View in Browser
- Cameron St. Amant's solution - View in Browser
- Rosanne Nicolai's solution - View in Browser
- Nathan Choi's solution - View in Browser
- Carlos Del Real solution - View in Browser
- Ray Alvarez's solution - View in Browser
- Robin's solution - View in Browser
- aytung's solution - View in Browser
- Rafael Rodriguez Garcia's solution - View in Browser I0 - I5
- Martink-rsa's solution
- TuSeMorte's solution - View in Browser
- David Watkin's solution - View in browser
This section contains helpful links to other content. It isn't required, so consider it supplemental for if you need to dive deeper into something.
- The official Ruby on Rails guides are an excellent resource if you want to build on your knowledge.
- If you want, you can take a look at The Ruby on Rails Guides: Getting Started from last lesson again. This will help you add some extra features to your blog such as deleting comments.
- You can read the Introduction to Core Ruby Tools from LaunchSchool to get a better understanding of Ruby and Rails concepts such as gems, version managers, bundler, and rake.