Newbie designing Rails app practices

I'm trying to understand the best procedure for developing a Rails app. How do most of you do it? Do you start with an idea, like how a single page of the app should appear, and then build out that view with controllers, models, view, etc? In other words, should everything be built from what each view should be? or Do you have to build the guts first before you get to the view? Maybe it's a personal preference?

Thanks in advance

You will always start with an idea, whether it be a forum, a blog, an e-commerce site, a social site, or other. Here are my tips for solid design work:

1. Sketch the idea out on paper and gain an idea of what core features you want to incorporate into your app. Think about authentication, authorization, specific features, administration, usability, etc.

2. Design your database models. Use a software like RISE to build ERD schematics or entity relationship diagrams so you get an idea of how everything will connect, and in the process you will be able to normalize your tables.

3. Then, start to dig deeper. If you notice so far, you haven't done a single bit of programming or design work. It's better to keep sketching until you have a well rounded idea before you proceed further.

4. Once you have your ideas in place and most of the sketches, try to simplify your code by using gems and libraries that are well placed and lightweight on resources. Do you need pagination? Do you need xml/html parsing or similar? Are you going to be using Jquery over Prototype? It's important to research what gems will work well with other gems.

From here, you can do many things. But, the most important thing is to make sure that you write solid test code while you are developing your app. If you build a controller, a model, and a view, start writing your tests for that controller, that model, and that view. The best advice I can give you, which may differ from other people is to write as much "necessary" test code to ensure that your app is working properly. However, if you get stuck writing test code, you need to balance the development of your app and the writing of test code without sacrificing too much time.

I could give you another 100 tips for development and design, but it's best to stick to the basics I stated above, and then branch out as you feel comfortable. I've built numerous sites in Rails - it's a very solid framework. Make sure you keep your feet wet with Ruby programming as well. The more you know and realize, the better.

Other than that, start with understanding fundamental web design - gain knowledge about CSS/Sass, Javascript/Jquery, html5, mobile frameworks like JQMobile, DBs like MySql, Postgres, etc. and stay grounded with your development tasks. When you can balance all of this, the rest is like riding a bike.