I am trying to build a CRM tool for a particular niche. I’m a complete newbie. This will be my first app. My only programming experience is with VB and MS Access, so RoR is presenting quite the learning curve. I have worked through the first version of Michael Hartl’s Rails Tutorial. (And actually absorbed about 10% of it)
I bought a Themeforest bootstrap admin theme and have two general questions on it:
1) The theme has some PHP code in it. I’m assuming that I should re-write this code in Ruby, right? The code mostly controls things like file uploading, etc.–things that could be re-written in Ruby by an experienced programmer rather quickly (for me, it will take months 🙂
2) The theme contains a number of different pages. For example, one page is a dashboard, and another is a calendar. Both of these pages have a lot of duplication between them – all the main control buttons, etc., stay the same from page to page. In the theme, each page is a different HTML file where all of the code is simply duplicated. I’m assuming that I’ll want to set up some sort of template system in Rails so that I don’t cut-and-paste code between a bunch of HTML pages, right? (If I change a main button, I only want to make that change in one place, rather than in each of the 20 HTML files that came with this theme.)
1)
I’m not absolutely sure if there’s no other way, but it’s most likely the easiest solution.
If you have to rewrite stuff that’s common in web apps, like file uploading, there is usually a gem to help you out, so you don’t have to do everything from scratch. I can recommend the paperclip gem, Railscast for file uploading, since we use that in our own project.
Note: The Railscast is out of date, so the installation stuff is no longer accurate. Also, paperclip requires ImageMagick to work.
Railscasts also cover lots of other useful gems. If you need to find something specific, just google it. The github page then usually reveals if a gem is still maintained or if you’re better off with something else.
2)
Rails prevents duplicated code with partials. Here’s the Railscast (syntax might have changed since 2008). Partials let you place code like headers, or buttons in your case, in a file, which can then be rendered in any of your views.
Unfortunately, I can’t link the other stuff like the github page and Rubygems.org because I lack the reputation. I hope this still helps a bit.