Ruby on Rails
File:Ruby on Rails logo.jpg | |
---|---|
Developer(s) | Rails Core Team |
Stable release | 2.3.5 / November 27, 2009 |
Written in | Ruby |
Operating system | Cross-platform |
Development status | Active |
Type | Web application framework |
License | MIT License |
Website | rubyonrails.org |
Ruby on Rails, often shortened to Rails or RoR, is an open source web application framework for the Ruby programming language. It is intended to be used with an Agile development methodology that is used by web developers for rapid development.[1]
History
Ruby on Rails was extracted by David Heinemeier Hansson from his work on Basecamp, a project management tool by 37signals (now a web application company).[2] Heinemeier Hansson first released Rails as open source in July 2004, but did not share commit rights to the project until February 2005.[3] 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",[4] which was released in October 2007.
Technical overview
Like many web frameworks, Rails uses the Model-View-Controller (MVC) architecture pattern to organize application programming.[5]
Ruby on Rails includes tools that make common development tasks easier "out of the box", such as scaffolding that can automatically construct some of the models and views needed for a basic website.[6] Also included are WEBrick, a simple ruby web server, and Rake, a build system. Together with Rails these tools provide a basic development environment.
Ruby on Rails relies on a web server to run it. Mongrel is generally preferred over WEBrick at the time of writing[citation needed] but it can also be run by Lighttpd, Abyss, Apache (either as a module - Passenger for example - or via CGI, FastCGI or mod_ruby), and many others. From 2008 onwards, the Passenger web server replaced Mongrel as the most used web server.[citation needed] Recently, the Unicorn web server has become a favorite of new deployments.[citation needed]
Rails is also noteworthy for its extensive use of the JavaScript libraries Prototype and Script.aculo.us for Ajax.[7] Rails initially utilized lightweight SOAP for web services; this was later replaced by RESTful web services.
Since version 2.0, Ruby on Rails by default offers both HTML and XML as output formats. The latter is the facility for RESTful web services.
Framework structure
Ruby on Rails is separated into various packages, namely ActiveRecord (an object-relational mapping system for database access), ActiveResource (provides web services), ActionPack, ActiveSupport and ActionMailer. Prior to version 2.0, Rails also included the Action Web Service package that is now replaced by Active Resource. Apart from standard packages, developers can make plugins to extend existing packages.
Philosophy and design
Ruby on Rails is intended to emphasize Convention over Configuration (CoC), and the rapid development principle of Don't Repeat Yourself (DRY).
"Convention over Configuration" means a developer only needs to specify unconventional aspects of the application. For example, if there is a class Sale in the model, the corresponding table in the database is called sales by default. It is only if one deviates from this convention, such as calling the table "products sold", that the developer needs to write code regarding these names. Generally, this leads to less code and less repetition.
"Don't repeat yourself" means that information is located in a single, unambiguous place. For example, using the ActiveRecord module of Rails, the developer does not need to specify database column names in class definitions. Instead, Ruby on Rails can retrieve this information from the database based on the class name.
Deployment
Ruby on Rails is often installed using RubyGems, a package manager[8] which is included with Ruby. Many Linux distributions also support installation of Rails and its dependencies through their native package management system.
Ruby on Rails is typically integrated with a database server such as MySQL and a web server such as Apache. As an alternative to manual installation, a pre-integrated TurnKey Rails appliance can be used to deploy a ready-to-use server[9].
Rails hosting providers such as Engine Yard and Heroku support deployment of Ruby on Rails applications as a cloud service.
Recent developments
Rails version 2.3 was released on March 15, 2009. Major new developments in Rails includes templates, engines, Rack and nested model forms.
- Templates enable the developer to generate a skeleton application with custom gems and configurations.
- Engines let one 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 ActionController.[10]
On December 23, 2008, Merb, another web application framework, and Rails announced a commitment to work together. The Rails team announced they would work with the Merb project to bring "the best ideas of Merb" into Rails 3, ending the "unnecessary duplication" across both communities.[11]
Trademarks
In March 2007 David Heinemeier Hansson filed three Rails related trademark applications to the USPTO. These applications regard the phrase "RUBY ON RAILS",[12] the word "RAILS"[13] and the official Rails logo.[14] As a consequence, in the summer of 2007 Hansson denied to Apress the permission to use the Rails logo on the cover of a new Rails book written by some authoritative community members. The episode gave rise to a polite protest in the Rails community.[15][16] In response to this criticism, Hansson made the following claims:[15] I only grant promotional use [of the Rails logo] for products I'm directly involved with. Such as books that I've been part of the development process for or conferences where I have a say in the execution. I would most definitely seek to enforce all the trademarks of Rails.
Criticism
Rails has been criticized for issues with scalability.[17] These critics often mentioned various Twitter outages in 2007 and 2008, which spurred Twitter's partial transition to Scala (which runs on the Java Virtual Machine) for their queuing system and other middleware. [18][19] The customer-facing aspects of the site continue to run Ruby on Rails.[20]
Rails in production
Popular websites that use the Ruby on Rails web development framework in production environments include:[21]
- BaseCamp
- CrunchBase[citation needed]
- Github
- Assembla
- Hulu
- Penny Arcade
- Scribd
- Spiceworks[citation needed]
- Urban Dictionary
- Whitepages.com
- Yellowpages.com
See also
References
- ↑ Rønn Jensen, Jesper (April 12, 2006). "Ruby on Rails as rapid prototyping tool". justaddwater.dk. Denmark. http://justaddwater.dk/2006/04/12/rails-prototyping/. Retrieved February 2, 2010.
- ↑ Grimmer, Lenz (February 2006). "Interview with David Heinemeier Hansson from Ruby on Rails". MySQL AB. http://dev.mysql.com/tech-resources/interviews/david-heinemeier-hansson-rails.html. Retrieved 2008-06-08.
- ↑ "37 Signals, Rails core team profiles.". http://www.rubyonrails.org/core. Retrieved 2008-07-15.
- ↑ Hansson, David (August 7, 2006). "Ruby on Rails will ship with OS X 10.5 (Leopard)". http://weblog.rubyonrails.org/2006/8/7/ruby-on-rails-will-ship-with-os-x-10-5-leopard. Retrieved 2008-06-08.
- ↑ Ruby on Rails - Rails' MVC architecture
- ↑ There were quite a few changes in the 2.0 release, including the way that Rails generates scaffolding code.
- ↑ Rails includes the Prototype JavaScript framework and the Scriptaculous JavaScript controls and visual effects library.
- ↑ "Ruby on Rails: Download". RubyonRails.org. http://rubyonrails.org/download.
- ↑ "Ruby on Rails Appliance". TurnKey Linux Virtual Appliance Library. http://www.turnkeylinux.org/rails.
- ↑ Hansson, David (March 16, 2009). "Rails 2.3: Templates, Engines, Rack, Metal, much more!". http://weblog.rubyonrails.org/2009/3/16/rails-2-3-templates-engines-rack-metal-much-more.
- ↑ "The day Merb joined Rails". December 27, 2008. http://rubyonrails.org/merb.
- ↑ ""Ruby on Rails" Trademark Status". USPTO. http://tarr.uspto.gov/servlet/tarr?regser=serial&entry=77119206. Retrieved 2007-08-01.
- ↑ ""Rails" Trademark Status". USPTO. http://tarr.uspto.gov/servlet/tarr?regser=serial&entry=77119210. Retrieved 2007-08-01.
- ↑ "Rails Logo Trademark Status". USPTO. http://tarr.uspto.gov/servlet/tarr?regser=serial&entry=77119208. Retrieved 2007-08-01.
- ↑ 15.0 15.1 Forde, Pete (2007-07-23). "Beginning Rails: From Novice to Professional". http://rethink.unspace.ca/2007/7/23/beginning-rails-from-novice-to-professional. Retrieved 2007-08-01.
- ↑ Cooper, Peter (2007-07-24). "David Heinemeier Hansson says No to Use of Rails Logo". http://www.rubyinside.com/david-heinemeier-hansson-says-no-to-use-of-rails-logo-567.html. Retrieved 2007-08-01.
- ↑ "5 Question Interview with Twitter Developer Alex Payne". radicalbehavior.com. 2007-03-29. http://www.radicalbehavior.com/5-question-interview-with-twitter-developer-alex-payne/. Retrieved 2009-07-18.
- ↑ Steve Jenson, Alex Payne, and Robey Pointer interview (2009-04-03). "Twitter on Scala". artima.com. http://www.artima.com/scalazine/articles/twitter_on_scala.html. Retrieved 2009-07-18. "We had a Ruby-based queuing system that we used for communicating between the Rails front ends and the daemons, and we ended up replacing that with one written in Scala. The Ruby one actually worked pretty decently in a normal steady state, but the startup time and the crash behavior were undesirable."
- ↑ "Twitter jilts Ruby for Scala". theregister.co.uk. 2009-04-01. http://www.theregister.co.uk/2009/04/01/twitter_on_scala/. Retrieved 2009-07-18. "By the end of this year, Payne said, Twitter hopes to have its entire middleware infrastructure and its APIs ported to the new language. Ruby will remain, but only on the front end. "We're still happy with Rails for building user facing features... performance-wise, it's fine for people clicking around web pages. It's the heavy lifting, asynchronous processing type of stuff that we've moved away from.""
- ↑ ryan king (2009-09-25). "Twitter on Ruby". evan weaver. http://blog.evanweaver.com/articles/2009/09/24/ree/. Retrieved 2009-09-29. "We use Scala for a few things at Twitter, but the majority of the site is Ruby."
- ↑ "Rails Applications live in the wild". RubyonRails.org. http://rubyonrails.org/applications.
Bibliography
- Ruby, Sam; Thomas, Dave; Hansson, David (March 28, 2009), Agile Web Development with Rails (Third ed.), Pragmatic Bookshelf, pp. 850, ISBN 1934356166, http://www.pragprog.com/titles/rails3/agile-web-development-with-rails-third-edition
- Laurent, Simon St.; Dumbill, Edd (November 28, 2008), Learning Rails (First ed.), O'Reilly Media, pp. 442, ISBN 0596518773, http://oreilly.com/catalog/9780596518776/
- Lenz, Patrick (May 1, 2008), Simply Rails 2 (Second ed.), SitePoint, pp. 450, ISBN 0980455200, http://www.sitepoint.com/books/rails2/
- Tate, Bruce; Hibbs, Curt (August 22, 2006), Ruby on Rails: Up and Running (First ed.), O'Reilly Media, pp. 182, ISBN 0596101325, http://oreilly.com/catalog/9780596101329/
- Holzner Ph.D., Steve (November 29, 2006), Beginning Ruby on Rails (First ed.), Wrox, pp. 380, ISBN 0470069155, http://www.wrox.com/WileyCDA/WroxTitle/Beginning-Ruby-on-Rails.productCd-0470069155.html
- Allan Hardy, Jeffrey; Carneiro Jr, Cloves; Catlin, Hampton (July 20, 2007), Beginning Ruby on Rails E-Commerce: From Novice to Professional (First ed.), Wrox, pp. 361, ISBN 1590596862, http://www.apress.com/book/view/9781590597361
- Clark, Mike (May 15, 2008), Advanced Rails Recipes (First ed.), Pragmatic Bookshelf, pp. 464, ISBN 0978739221, http://www.pragprog.com/titles/fr_arr/advanced-rails-recipes
External links
Search Wikibooks | Wikibooks has a book on the topic of |
- Ruby on Rails official website
- Ruby Forge
- Railscasts These screencasts are short and focus on Ruby on Rails technique
|
|
af:Ruby on Rails ar:روبي على قضبان bg:Ruby on Rails ca:Ruby on Rails cs:Ruby on Rails da:Ruby on Rails de:Ruby on Rails es:Ruby on Rails eo:Ruby on Rails eu:Ruby on Rails fr:Ruby on Rails gl:Ruby on Rails ko:루비 온 레일즈 it:Ruby on Rails he:Ruby on Rails hu:Ruby on Rails ms:Ruby on Rails nl:Ruby on Rails ja:Ruby on Rails no:Ruby on Rails pl:Ruby on Rails pt:Ruby on Rails ru:Ruby on Rails fi:Ruby on Rails sv:Ruby on Rails th:รูบีออนเรลส์ tr:Ruby on Rails uk:Ruby on Rails zh-yue:Ruby on Rails zh:Ruby on Rails
If you like SEOmastering Site, you can support it by - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 and more...
- Pages where expansion depth is exceeded
- Pages with broken file links
- All articles with unsourced statements
- Articles with unsourced statements from January 2010
- Articles with invalid date parameter in template
- Articles with unsourced statements from December 2009
- 2004 introductions
- Free development toolkits and libraries
- Free software programmed in Ruby
- Web 2.0
- Web application frameworks
- Software using the MIT license