GetWiki
Ruby on Rails
ARTICLE SUBJECTS
being →
database →
ethics →
fiction →
history →
internet →
language →
linux →
logic →
method →
news →
policy →
purpose →
religion →
science →
software →
truth →
unix →
wiki →
ARTICLE TYPES
essay →
feed →
help →
system →
wiki →
ARTICLE ORIGINS
critical →
forked →
imported →
original →

Ruby on Rails
please note:
- the content below is remote from Wikipedia
- it has been imported raw for GetWiki
{{distinguish|Ruby (programming language)}}- the content below is remote from Wikipedia
- it has been imported raw for GetWiki
factoids | |
---|---|
| operating system =
| platform =
| language =
| programming language = Ruby
| genre = Web application framework
| license = MIT License
| website = {{URLweblink}}
| size = 18.2 MBWEB, Release v5.1.1 · rails/rails · GitHub,weblink 25 June 2017,
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.WEB, Lenzââ, Grimmer, February 2006, Interview with David Heinemeier Hansson from Ruby on Rails,weblink MySQL AB, 2008-06-08, yes,weblink" title="web.archive.org/web/20130225091835weblink">weblink February 25, 2013, Hansson first released Rails as open source in July 2004, but did not share commit rights to the project until February 2005. {{Citation needed|date=September 2016}} 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",WEB,weblink
, Ruby on Rails will ship with OS X 10.5 (Leopard)
, 2008-06-08
, Hansson
, David
, August 7, 2006
, 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.WEB, David, Hansson, March 16, 2009, Rails 2.3: Templates, Engines, Rack, Metal, much more!,weblink 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.WEB, 2008-12-27, The day Merb joined Rails,weblink yes,weblink" title="web.archive.org/web/20130209055716weblink">weblink 2013-02-09, Merb was merged with Rails as part of the Rails 3.0 release.WEB,weblink Ruby on Rails 3.0 Release Notes â Ruby on Rails Guides, Edgeguides.rubyonrails.org, 2017-05-24, WEB, sdtimes.com, 2010-02-10, Ruby on Rails 3.0 goes modular,weblink 2010-08-06, 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.WEB, 2012-09-01, Ruby on Rails 3.1 Release Notes,weblink 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.WEB, 2012-09-01, Ruby on Rails 3.2 Release Notes,weblink Rails 3.2.x is the last version that supports Ruby 1.8.7.WEB, 2012-09-01, Rails/master is now 4.0.0.beta,weblink Rails 3.2.12 supports Ruby 2.0.Rails 3.2.x is now compatible with Ruby 2.0.0 by sikachu · Pull Request #9406 · rails/rails · GitHub. Github.com. Retrieved on 2014-05-30.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.WEB,weblink Rails 4.0: Final version released! | Riding Rails, Weblog.rubyonrails.org, 2013-06-25, 2017-05-24, Rails 4.1 was released on April 8, 2014, introducing Spring, Variants, Enums, Mailer previews, and secrets.yml.WEB,weblink Rails 4.1.0: Spring, Variants, Enums, Mailer previews, secrets.yml, weblog.rubyonrails.org, Rails 4.2 was released on December 19, 2014, introducing Active Job, asynchronous emails, Adequate Record, Web Console, and foreign keys.WEB,weblink Rails 4.2: Active Job, Asynchronous Mails, Adequate Record, Web Console, Foreign Keys, Ruby on Rails, 5 Dec 2015, Rails 5.0 was released on June 30, 2016, introducing Action Cable, API mode, and Turbolinks 5.WEB,weblink Rails 5.0: Action Cable, API mode, and so much more, Ruby on Rails, 19 Nov 2016, Rails 5.0.0.1 was released on August 10, 2016, with Exclusive use of rails CLI over Rake and support for Ruby version 2.2.2 and above.Rails 5.1 was released on April 27, 2017, introducing JavaScript integration changes (management of JavaScript dependencies from NPM via Yarn, optional compilation of JavaScript using Webpack, and a rewrite of Rails UJS to use vanilla JavaScript instead of depending on jQuery), system tests using Capybara, encrypted secrets, parameterized mailers, direct & resolved routes, and a unified form_with helper replacing the form_tag/form_for helpers.WEB,weblink Rails 5.1: Loving JavaScript, System Tests, Encrypted Secrets, and more, Ruby on Rails, 10 May 2017, Rails 5.2 was released on April 9, 2018, introducing new features that include ActiveStorage, built-in Redis Cache Store, updated Rails Credentials and a new DSL that allows for configuring a Content Security Policy for an application.WEB,weblink Rails 5.2.0 FINAL: Active Storage, Redis Cache Store, HTTP/2 Early Hints, CSP, Credentials, Ruby on Rails, 9 April 2018, Rails 5.2.2 was released on December 4, 2018, introducing numerous bug fixes and several logic improvements.WEB,weblink Rails 5.2.2 has been released!, rafaelfranca, 2018-12-04, Riding Rails, 2019-01-04, {| class="wikitable sortable" style="float:left;"|+ Version history, Ruby on Rails will ship with OS X 10.5 (Leopard)
, 2008-06-08
, Hansson
, David
, August 7, 2006
o | "Rails 1.0: Party like it's one oh oh!". Riding Rails. Retrieved June 9, 2010. > | 2005 | 13}} |
o | "Rails 1.2: REST admiration, HTTP lovefest, and UTF-8 celebrations" {{webarchive>url=https://web.archive.org/web/20121102040417weblink | 2007 | 19}} |
o | "Rails 2.0: It's done!". Riding Rails. Retrieved June 9, 2010. > | 2007 | 7}} |
o | Rails 2.1: Time zones, dirty, caching, gem dependencies, caching, etc {{webarchive>url=https://web.archive.org/web/20121102040223weblink | 2008 | 1}} |
o | "Rails 2.2: i18n, HTTP validators, thread safety, JRuby/1.9 compatibility, docs". Riding Rails. Retrieved June 9, 2010. > | 2008 | 21}} |
o | "Rails 2.3: Templates, Engines, Rack, Metal, much more!". Riding Rails. Retrieved June 9, 2010. > | 2009 | 16}} |
o | "Rails 3.0: It's ready!". Riding Rails. Retrieved August 30, 2010. > | 2010 | 29}} |
o | WEBSITE=GITHUB.COM, | {{dts | 8 | | |
o | WEBSITE=GITHUB.COM, | {{dts | 1 | | |
o | WEBSITE=BLOG.WYEWORKS.COM, | {{dts | 6 | | |
o | 2014 | 8}} |
o | 2014 | 19}} |
co | 2016 | 30}} |
co | 2017 | 10}} |
c | AUTHOR=DHH | TITLE=RAILS 5.2.0 FINAL: ACTIVE STORAGE, REDIS CACHE STORE, HTTP/2 EARLY HINTS, CSP, CREDENTIALS, | {{dts | 04 | | |
p | LAST=DHH | WEBSITE=RIDING RAILS, 2019-01-04, |April 30, 2019|"aspirational...release" date |
{{Version | show=011101}} |
Technical overview
Like other web frameworks, Ruby on Rails uses the modelâviewâcontroller (MVC) pattern to organize application programming.In a default configuration, a model in the Ruby on Rails framework maps to a table in a database and to a Ruby file. For example, a model class User will usually be defined in the file 'user.rb' in the app/models directory, and linked to the table 'users' in the database. While developers are free to ignore this convention and choose differing names for their models, files, and database table, this is not common practice and is usually discouraged in accordance with the "convention-over-configuration" philosophy.A controller is a server-side component of Rails that responds to external requests from the web server to the application, by determining which view file to render. The controller may also have to query one or more models for information and pass these on to the view. For example, in an airline reservation system, a controller implementing a flight-search function would need to query a model representing individual flights to find flights matching the search, and might also need to query models representing airports and airlines to find related secondary data. The controller might then pass some subset of the flight data to the corresponding view, which would contain a mixture of static HTML and logic that use the flight data to create an HTML document containing a table with one row per flight. A controller may provide one or more actions. In Ruby on Rails, an action is typically a basic unit that describes how to respond to a specific external web-browser request. Also, note that the controller/action will be accessible for external web requests only if a corresponding route is mapped to it. Rails encourages developers to use RESTful routes, which include actions such as create, new, edit, update, destroy, show, and index. These mappings of incoming requests/routes to controller actions can be easily set up in the routes.rb configuration file.A view in the default configuration of Rails is an erb file, which is evaluated and converted to HTML at run-time. Alternatively, many other templating systems can be used for views.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.WEB, Sean Lynch,weblink fairleads: Rails 2.0 and Scaffolding Step by Step, Fairleads.blogspot.com, 2007-12-15, 2017-05-24, Also included are WEBrick, a simple Ruby web server that is distributed with Ruby, and Rake, a build system, distributed as a gem. Together with Ruby on Rails, these tools provide a basic development environment.Ruby on Rails is most commonly not connected to the Internet directly, but through some front-end web server. Mongrel was generally preferred{{By whom|date=February 2015}} over WEBrick in the early days,{{Citation needed|date=January 2010}} but it can also run on Lighttpd, Apache, Cherokee, Hiawatha, Nginx (either as a module â Phusion Passenger for example â or via CGI, FastCGI or mod_ruby), and many others. From 2008 onward, Passenger replaced Mongrel as the most-used web server for Ruby on Rails.WEB,weblink Archived copy, 2012-12-03, yes,weblink" title="web.archive.org/web/20090707080544weblink">weblink 2009-07-07, Ruby is also supported natively on the IBM i.WEB, Maxcer, Chris, PowerRuby Brings Enterprise Ruby on Rails Support to IBM i,weblinkweblink" title="web.archive.org/web/20131009010101weblink">weblink iPro Developer, 9 May 2014, yes, 9 October 2013, Ruby on Rails is also noteworthy for its extensive use of the JavaScript libraries, Prototype and Script.aculo.us, for scripting Ajax actions.WEB, Js_Escape_Map,weblink ActionView::Helpers::JavaScriptHelper, Api.rubyonrails.org, 2017-05-24, Ruby on Rails initially utilized lightweight SOAP for web services; this was later replaced by RESTful web services. Ruby on Rails 3.0 uses a technique called Unobtrusive JavaScript to separate the functionality (or logic) from the structure of the web page. jQuery is fully supported as a replacement for Prototype and is the default JavaScript library in Rails 3.1, reflecting an industry-wide move towards jQuery. Additionally, CoffeeScript was introduced in Rails 3.1 as the default JavaScript language.Since version 2.0, Ruby on Rails offers both HTML and XML as standard output formats. The latter is the facility for RESTful web services.Rails 3.1 introduced Sass as standard CSS templating.By default, the server uses Embedded Ruby in the HTML views, with files having an html.erb extension. Rails supports swapping-in alternative templating languages, such as HAML and Mustache.Ruby on Rails 3.0 has been designed to work with Ruby 1.8.7, Ruby 1.9.2, and JRuby 1.5.2+; earlier versions are not supported.WEB,weblink Rails 3.0: It's ready!, rubyonrails.org, Rails 3.0 has been designed to work with Ruby 1.8.7, Ruby 1.9.2, and JRuby 1.5.2+., 2010-08-30, Ruby on Rails 3.2 is the last series of releases that support Ruby 1.8.7.Framework structure
Ruby on Rails is separated into various packages, namely ActiveRecord (an object-relational mapping system for database access), Active Resource (provides web services), Action Pack, Active Support and Action Mailer. Prior to version 2.0, Ruby on 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. Earlier Rails supported plugins within their own custom framework; version 3.2 deprecates these in favor of standard Ruby "gems".WEB, 2012-09-01, Rails 3.2.0.rc2 has been released!,weblink Weblog.rubyonrails.org,Deployment
Ruby on Rails is often installed using RubyGems, a package managerWEB,weblink Ruby on Rails: Download, RubyonRails.org, yes,weblink" title="web.archive.org/web/20091212173926weblink">weblink 2009-12-12, which is included with current versions of Ruby. Many free Unix-like systems also support installation of Ruby on Rails and its dependencies through their native package management system.Ruby on Rails is typically deployed with a database server such as MySQL or PostgreSQL, and a web server such as Apache running the Phusion Passenger module.Philosophy and design
Ruby on Rails is intended to emphasize Convention over Configuration (CoC), and the Don't Repeat Yourself (DRY) principle."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, Ruby on Rails conventions lead 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."Fat models, skinny controllers" means that most of the application logic should be placed within the model while leaving the controller as light as possible.Trademarks
In March 2007, David Heinemeier Hansson filed three Ruby on Rails-related trademark applications to the USPTO. These applications regard the phrase "RUBY ON RAILS",WEB, "Ruby on Rails" Trademark Status,weblink USPTO, 2007-08-01, the word "RAILS",WEB, "Rails" Trademark Status,weblink USPTO, 2007-08-01, and the official Rails logo.WEB, Rails Logo Trademark Status,weblink USPTO, 2007-08-01, As a consequence, in the summer of 2007, Hansson denied permission to Apress to use the Ruby on Rails logo on the cover of a new Ruby on Rails book written by some authoritative community members. The episode gave rise to a polite protest in the Ruby on Rails community.WEB, Pete, Forde, 2007-07-23, Beginning Rails: From Novice to Professional,weblink 2007-08-01, yes,weblink" title="web.archive.org/web/20070805232643weblink">weblink August 5, 2007, WEB, Peter, Cooper, 2007-07-24, David Heinemeier Hansson says No to Use of Rails Logo,weblink 2007-08-01, In response to this criticism, Hansson replied: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.Reception
Scalability
Rails running on Matz's Ruby Interpreter (the de facto reference interpreter for Ruby) had been criticized for issues with scalability.WEB, radicalbehavior.com, 2007-03-29, 5 Question Interview with Twitter Developer Alex Payne, By various metrics Twitter is the biggest Rails site on the net right now. Running on Rails has forced us to deal with scaling issues - issues that any growing site eventually contends with â far sooner than I think we would on another framework.,weblink 2014-11-04, yes,weblink" title="web.archive.org/web/20090423002030weblink">weblink April 23, 2009, 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 queueing system and other middleware.WEB, artima.comSecurity
In March 2012, security researcher Egor Homakov discovered a "mass assignment" vulnerability that allowed certain Rails applications to be remotely exploited, and demonstrated it by non-maliciously hacking GitHub after his earlier attempts at responsible disclosure were dismissed.WEB, Protalinski, Emil,weblink How GitHub handled getting hacked, Zdnet.com, 2017-05-24, On September 24, 2013, a session cookie persistence security flaw was reported in Ruby on Rails. In a default configuration, the entire session hash is stored within a session cookie known as CookieStore, allowing any authenticated session possessing the session cookie to log in as the target user at any time in the future. As a workaround, administrators are advised to configure cookies to be stored on the server using mechanisms such as ActiveRecordStore.NEWS, Brook, Chris,weblink Security Issue in Ruby on Rails Could Expose Cookies, Threat Post, The Kaspersky Lab Security News Service, 2013-09-25, 2014-06-04, Researchers Daniel Jackson and Joseph Near developed a data debugger they called "Space" that can analyze the data access of a Rails program and determine if the program properly adheres to rules regarding access restrictions. On April 15, 2016, Near reported that an analysis of 50 popular Web applications using Space uncovered 23 previously unknown security flaws.WEB,weblink Patching up Web applications, MIT News, 2016-04-21,References
{{Reflist|30em}}Bibliography
- JOURNAL, Sam, Ruby, Dave, Thomas, David, Hansson, March 28, 2009, Agile Web Development with Rails, Third, Pragmatic Bookshelf, 850, 1-934356-16-6,weblink
- JOURNAL, Simon St., Laurent, Edd, Dumbill, November 28, 2008, Learning Rails, First, O'Reilly Media, 442, 0-596-51877-3,weblink
- JOURNAL, Bruce, Tate, Curt, Hibbs, August 22, 2006, Ruby on Rails: Up and Running, First, O'Reilly Media, 182, 0-596-10132-5,weblink
- JOURNAL, Steve, Holzner Ph.D., November 29, 2006, Beginning Ruby on Rails, First
- JOURNAL, Jeffrey, Allan Hardy, Cloves, Carneiro Jr, Hampton, Catlin, July 20, 2007, Beginning Ruby on Rails E-Commerce: From Novice to Professional, First
- JOURNAL, Mike, Clark, May 15, 2008, Advanced Rails Recipes, First, Pragmatic Bookshelf, 464, 0-9787392-2-1,weblink
External links
- {{Official website}}
- The Rails Tutorial â The Ruby on Rails Tutorial book and screencast series teach you how to develop and deploy Ruby on Rails apps
- Rails source code
- Rails guides
- Rails API
- content above as imported from Wikipedia
- "Ruby on Rails" does not exist on GetWiki (yet)
- time: 4:11am EST - Fri, Feb 22 2019
- "Ruby on Rails" does not exist on GetWiki (yet)
- time: 4:11am EST - Fri, Feb 22 2019
[ this remote article is provided by Wikipedia ]
LATEST EDITS [ see all ]
GETWIKI 09 MAY 2016
GetMeta:About
GetWiki
GetWiki
GETWIKI 18 OCT 2015
M.R.M. Parrott
Biographies
Biographies
GETWIKI 20 AUG 2014
GetMeta:News
GetWiki
GetWiki
GETWIKI 19 AUG 2014
GETWIKI 18 AUG 2014
Wikinfo
Culture
Culture
© 2019 M.R.M. PARROTT | ALL RIGHTS RESERVED