Check out new amazing benefits of a PRO account!

406

Ruby-on-Rails

Ruby on Rails (or just Rails) is a free, open source Web application framework, which provides coders with everything they need to build awesome applications. Learning and developing Rails framework is easy with the help of Livecoding’s interactive social coding platform. Our guide is created to help coders on any difficulty level, and for more experienced programmers, we offer a vast collection of videos, and ability to watch how other developers code live and chat with them as well. Welcome to the Livecoding.tv! read more ...

Introduction to Ruby on Rails Framework

Ruby on Rails, or simply Rails, is a web application framework written in Ruby under the MIT License. So, what is ruby on rails? Rails is a model–view–controller (MVC) framework, providing default structures for a database, a web service, and web pages. It encourages and facilitates the use of web standards such as JSON or XML for data transfer, and HTML, CSS and JavaScript for display and user interfacing. In addition to MVC, Rails emphasizes the use of other well-known software engineering patterns and paradigms, including convention over configuration (CoC), don't repeat yourself (DRY), and the active record pattern.

Ruby on Rails History

David Heinemeier Hansson extracted Ruby on Rails from his work on the project management tool Basecamp at the web application company also called Basecamp. Hansson first released Rails as open source in July 2004, but did not share commit rights to the project until February 2005.[5] In August 2006, the framework reached a milestone when Apple announced that it would ship Ruby on Rails with Mac OS X v10.5 "Leopard", which was released in October 2007.

Rails version 2.3 was released on March 15, 2009 with major new developments in templates, engines, Rack and nested model forms. Templates enable the developer to generate a skeleton application with custom gems and configurations. Engines give developers the ability to reuse application pieces complete with routes, view paths and models. The Rack web server interface and Metal allow one to write optimized pieces of code that route around Action Controller.

On December 23, 2008, Merb, another web application framework, was launched, and Ruby on Rails announced it would work with the Merb project to bring "the best ideas of Merb" into Rails 3, ending the "unnecessary duplication" across both communities.[8] Merb was merged with Rails as part of the Rails 3.0 release.

Rails 3.1 was released on August 31, 2011, featuring Reversible Database Migrations, Asset Pipeline, Streaming, jQuery as default JavaScript library and newly introduced CoffeeScript and Sass into the stack.

Rails 3.2 was released on January 20, 2012 with a faster development mode and routing engine (also known as Journey engine), Automatic Query Explain and Tagged Logging. Rails 3.2.x is the last version that supports Ruby 1.8.7. Rails 3.2.12 supports Ruby 2.0.

Rails 4.0 was released on June 25, 2013, introducing Russian Doll Caching, Turbolinks, Live Streaming as well as making Active Resource, Active Record Observer and other components optional by splitting them as gems.

Rails 4.1 was released on April 8, 2014, introducing Spring, Variants, Enums, Mailer previews, and secrets.yml.

Rails 4.2 was released on December 19, 2014, introducing Active Job, asynchronous emails, Adequate Record, Web Console, and foreign keys.

Ruby on Rails Tools (Reference)

  • TRACEROUTE - Traceroute is a route cleaning tool for Rails applications. It provides a simple rake task for checking which routes are mapped to non existing controller actions, and finds out which controller actions are not reachable.
    You will also be required to keep your controller helper methods and various before/after filters private, since they shouldn’t be a part of the public API. It sometimes has problems with showing false positives on mountable engines, but they can be easily overlooked.
  • RACK-MINI-PROFILER - This is a nice tool used for finding bottlenecks of your applications. It does a live speed analysis of how long it took for the request to be processed and how much of that time it was doing various renderings, database queries and DOM loading. Just plug it into your Gemfile and you'll get a small window in the upper left corner of your page, showing you all of these information.
  • BULLET - This one particularly blew my mind. The bullet gem helps you kill all the N+1 queries, as well as unnecessarily eager loaded relations. Once you install it and start visiting various routes in development, alert boxes with warnings indicating database queries that need to be optimized will pop out. It works right out of the box and is extremely helpful for optimizing your application.
  • BRAKEMAN - A security analysis tool for your Rails applications. It scans through your application and outputs a nicely formatted table of possible vulnerabilities. Security warnings are grouped according to their severity (High, Medium and Low). You can learn more about their meanings on brakeman's list of warnings.
    Note that even if you end up not having any warnings, it doesn't mean that your app is secure, since brakeman sometimes overlooks some basic security pitfalls.
    Security-wise, there is also a gem called bundler-audit, used for checking vulnerable versions of gems in your Gemfile.lock.
  • DEADWEIGHT - Deadweight is used for cleaning unused CSS selectors. You have to hand out a set of your application's style sheets and HTML pages, and it will report which CSS selectors are safe to remove.
    The gem won’t work out of the box in Rails, since most pages have dynamic content, but Jason Morrison from Thoughtbot wrote a blog post on how to create a Rack Middleware and integrate it into your test suite to collect all the HTML content in one place.
    If you're using precompilers such as Sass or Less, you should compile all of your style sheets and hand them out as simple CSS files to the deadweight task. It is recommended that you remove all the vendor/third-party css files (such as Bootstrap files and similar) since they will end up clogging your output.
  • RAILS BEST PRACTICES - Static code analyzer for finding Rails specific code smells. It offers a variety of suggestions; use scope access, restrict auto-generated routes, add database indexes, etc. For a full list of suggestions, check out the rails-best-pratices official page. Unfortunately, sometimes it reports lots of false positives, such as unused methods. Nevertheless, it contains lots of nice suggestions that will give you a better perspective on how to refactor your code and learn some best practices.
    If you like the suggestions that rails best practices gives, you also might find Sandi Metz’s rules for developers quite interesting. You can check if your code complies to Sandi’s standards with the sandi_meter gem.
  • RUBOCOP - A Ruby static code analyzer which you can use to check if your code complies with the Ruby community code guidelines. The gem reports style violations through the command line, with lots of useful code refactoring goodies such as useless variable assignment, redundant use of Object#to_s in interpolation or even unused method argument.
    A good thing is that it's highly configurable, since the analyzer can be quite irritating if you're not following the Ruby style guide 100% (i.e. you have lots of trailing whitespaces or you double quote your strings even when not interpolating, etc.).
    It's divided into 4 sub-analyzers (called cops): Style, Lint, Metrics and Rails. You can define which cops to use, as well as which files to exclude/include and tweak various other configuration options in a .rubocop.yml file.
  • RUBYCRITIC - A relatively new gem that wraps around three static analysis gems - Reek(ruby code smells), Flay (code duplication detection) and Flog (ABC metrics). It creates nicely structured HTML files so you can browse through your smelly code and start refactoring. Out of all of the mentioned static code analysis tools, because of it's nice output, it's most convenient to overview and comment with your colleagues.

Ruby on Rails Best Books

Do you want to learn ruby on rails? Well, you have come to the right place. Below are nine total books, categorized into Beginner, Intermediate, and advanced. All these books are focused on keeping you up with latest web development trends and happenings in ruby rails. If you are thinking of finding ruby on rails jobs, these books can be a good place to get started. Also, you can use the online ruby on rails videos to understand concept better. LiveEdu.tv is a great place to start learning Ruby on Rails. Best wishes on becoming the future ruby on rails developer.

  • Book cover

    Ruby on Rails Tutorial: Learn Web Development with Rails

    by Michael Hartl

    Using Rails, developers can build web applications of exceptional elegance and power. Although its remarkable capabilities have made Ruby on Rails one of the world’s most popular web development frameworks, it can be challenging to learn and use. Ruby on Rails™ Tutorial,

  • Book cover

    Learning Rails

    by Edd Dumbill, Simon St. Laurent

    While most books written about Rails cater to programmers looking for information on data structures, Learning Rails targets web developers whose programming experience is tied directly to the Web.

  • Book cover

    Beginning Ruby on Rails

    by Steve Holzner

    Ruby on Rails is the revolutionary online programming tool that makes creating functional e-commerce web sites faster and easier than ever. With the intuitive, straightforward nature of Ruby and the development platform provided by Rails, you can put together full-fledged web applications quickly, even if you're new to web programming.

  • Book cover

    Practical Object-Oriented Design in Ruby: An Agile Primer

    by Sandi Metz

    Ruby’s widely admired ease of use has a downside: Too many Ruby and Rails applications have been created without concern for their long-term maintenance or evolution. The Web is awash in Ruby code that is now virtually impossible to change or extend. This text helps you solve that problem by using powerful real-world object-oriented design techniques, which it thoroughly explains using simple and practical Ruby examples.

  • Book cover

    Ruby for Rails: Ruby Techniques for Rails Developers

    by David A. Black

    The word is out: with "Ruby on Rails" you can build powerful Web applications easily and quickly! And just like the Rails framework itself, Rails applications are Ruby programs. That means you can't tap into the full power of Rails unless you master the Ruby language.

  • Book cover

    Distributed Programming with Ruby

    by Mark Bates

    Distributed programming techniques make applications easier to scale, develop, and deploy—especially in emerging cloud computing environments. Now, one of the Ruby community’s leading experts has written the first definitive guide to distributed programming with Ruby. Mark Bates begins with a simple distributed application, and then walks through an increasingly complex series of examples, demonstrating solutions to the most common distributed programming problems.

Ruby on Rails Projects (Reference)

Those who are avid travelers must be familiar with this company.

Airbnb allows its users to look for cheaper accommodation in the location they want to visit, set up the price range for their own property, the dates they want to rent it out and a whole range of quirks and instructions about the place.

What makes it different is that you will be renting a place from the locals instead of hotels or hostels.

Credit: Airbnb

From its conception until now, Airbnb has been counting on Rails as one of its back-end tools. Thanks to Rails, Airbnb managed to deal with a huge amount of daily transactions that have brought Airbnb to the company it is today.

Last year, Airbnb improved their large scale payments systems with Rails. As a result, they managed to have payment systems that have strong transactional integrity, a robust audit trail and very predictable failure behavior.

Airbnb

The success of Hulu is built on a simple concept: Provide Americans the ability to watch cable and network TV shows as well as movies legally and for free.

What makes Hulu different from its giant competitor, Netflix, is that Hulu gets its content faster – the tradeoff being Netflix has a broader range of content. So if you’re the type of person that needs to keep up with the latest shows, Hulu is the right choice.

Credit: Hulu

After the RailsConf 2012, Matthew Butt, ex-Hulu development manager, explained how the ideals of Rails influenced greatly their software development.

“The ideals of Rails – convention over configuration, Don’t Repeat Yourself (whenever possible, reuse as much code as possible rather than duplicating similar code in multiple places), test first, and agile – are quickly becoming pervasive throughout software development,” he said. Because of Rails, Hulu has a large and attractive library of content, and is easy to navigate on a variety of platforms.

Hulu

Even if you are not a programmer, you may have heard your geeky friends raving about Github.

Before diving into what Github is, you need to know first about Git, a version control system.

When software developers create an application, they make constant changes to the lines of code and release new versions, up to and after the first official release. The role of a version control system is to keep these changes (revisions) and store them in a central repository (storage). This way, developers can work together to make changes and upload the latest revision.

Credit: Github

With Github, programmers can create a new project based off another existing project (forking), make revisions to the existing project so that they will be recognized by the original developers (pull request), and access changelogs so that they know who changed what.

As one of the 100 most popular sites in the world, Github is a large production Ruby on Rails application. It is because of Rails that Github can serve hundreds of millions of requests per day. Additionally, they also managed to upgrade their framework from Rails 2.3 into Rails 3 in 2014 with zero downtime.

Github

Hackety Hack is an open source project designed to teach the basics of programming from the ground up via its website hackety.com.

Aside from learning Ruby programming language, users can also learn how to make an easy program based on Ruby. To help beginners create their first program, Hackety provides a stock of fun programs created by other Hackety users.

Credit: Hackety

Have an idea for a new lesson or want to improve the existing lessons? As a contributor, there is a project on Github where you can help Hackety create new lessons, or update existing ones.

Hackety Hack

Decentralized, freedom and privacy are the three philosophies at the heart of this online social network.

Unlike sites like Facebook, Diaspora does not store its data in huge central servers. As a user, you can choose whichever local pod you want to be registered with.

Want the true freedom of speech where no one will track you down and shut you up? On Diaspora, you can be whoever you want without using your real identity. Plus, Diaspora doesn’t own your data. You don’t have to sign over any rights to a corporation or any party who could use it. Your content is your business.

Credit: Diaspora via Opensourcerails.com

You can contribute to this open source project on Github by squashing some bugs or contributing your own code.

Diaspora

Spree is an open source Rails eCommerce platform.

Spree boasts of itself as an eCommerce site that is flexible, customizable, easy to administer and easy to deploy. When it comes to software development, their rich features even top the enterprise edition of Magento, the world’s biggest eCommerce platform.

Other good news is that the backend of Spree is built upon simplicity, which means the options offered are not cluttered and overwhelming for developers.

With simplicity in mind, it’s going to be easier for developers to keep your products updated and current. This will influence the frontend and hence, improve the customer’s experience on the site.

Credit: Allen Burt/Blue StoutSpree Backend

Built on Rails, Spree is easy to develop, handles server requests faster, and takes fewer lines of code which speed up the website loading time. You can also contributeto making the software better on Github.

Spree

Ruby on Rails Community

Ruby on Rails is for everyone who wants to build web applications, whether they're 30-year veterans or only just started to learn yesterday. All are welcome!

You can meet the community online on the Ruby on Rails: Talk mailing list, the Ruby on Rails StackOverflow Q&A tag, or the #rubyonrails IRC channel on irc.freenode.net. We also do a yearly RailsConf conference for people to meet in real life.

Read more about Ruby on Rails Community here.

Ruby on Rails Gurus (Reference)

Rockstars!
  • Keith Casey

    David Heinemeier Hansson:

    Creator of Ruby on Rails, Founder & CTO at Basecamp (formerly 37signals), NYT Best-selling author of REWORK and REMOTE, and Le Mans class-winning racing driver.

    Contributions David’s Website Twitter
  • Jeremy Daer

    Building it: Basecamp, Ruby on Rails.

    Contributions Github Twitter
    Eamon Leonard
  • Lorna Jane Mitchell

    Santiago Pastorino

    WyeWorks Co-Founder & CTO, Ruby on Rails Core Team Member.

    Contributions Github Twitter
  • Aaron Patterson

    Aaron Patterson: He chooses to work on Ruby and Rails because improving Rails provides a large impact on the developer community. He believes he has the skills and experience to be one of the most effective framework and language developers.

    Aaron’s Website Contributions Twitter
    Chris Cornutt
  • Chris Cornutt

    Xavier Noria

    He is a remote Ruby on Rails consultant with over sixteen years of professional programming experience. He has been working with Ruby on Rails for many years and am a member of the Ruby on Rails core team.

    Github Contributions Twitter

Ruby on Rails Conferences

Error image

Sorry but your browser is out of date - please install a new browser such as Google Chrome