Jump to content

Ruby on Rails

From Wikipedia, the free encyclopedia

Ruby on Rails
Original author(s)David Heinemeier Hansson
Initial releaseAugust 2004;19 years ago(2004-08)[1]
Stable release
7.1.3.4[2]Edit this on Wikidata / 4 June 2024;43 days ago(4 June 2024)
Repository
Written inRuby
Size57.8MB[3]
TypeWeb application framework
LicenseMIT License
Websiterubyonrails.orgEdit this on Wikidata

Ruby on Rails(simplified asRails) is aserver-sideweb application frameworkwritten inRubyunder theMIT License.Rails is amodel–view–controller(MVC) framework, providing default structures for adatabase,aweb service,andweb pages.It encourages and facilitates the use ofweb standardssuch asJSONorXMLfor data transfer andHTML,CSSandJavaScriptfor user interfacing. In addition to MVC, Rails emphasizes the use of other well-knownsoftware engineeringpatternsand paradigms, includingconvention over configuration(CoC),don't repeat yourself(DRY), and theactive record pattern.[4]

Ruby on Rails' emergence in 2005 greatly influenced web app development, through innovative features such as seamless databasetablecreations,migrations,andscaffoldingof views to enable rapid application development. Ruby on Rails' influence on otherweb frameworksremains apparent today, with many frameworks in other languages borrowing its ideas, includingDjangoinPython;CatalystinPerl;Laravel,CakePHPandYiiinPHP;GrailsinGroovy;PhoenixinElixir;PlayinScala;andSails.jsinNode.js.

Well-known sites that use Ruby on Rails includeAirbnb,Crunchbase,Dribbble,[5]GitHub,[6]Twitch[7]andShopify.

History[edit]

David Heinemeier Hanssonextracted Ruby on Rails from his work on the project management toolBasecampat theweb applicationcompany37signals.[8]Hansson first released Rails as open source in July 2004, but did not sharecommitrights to the project until February 2005.[citation needed]In August 2006, the framework reached a milestone whenAppleannounced that it would ship Ruby on Rails withMac OS X v10.5 "Leopard",[9]which was released in October 2007.

Rails version 2.3 was released on 15 March 2009, with major new developments in templates, engines,Rackand nested model forms. Templates enable the developer to generate a skeleton application with customgemsand 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.[10]

On 23 December 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.[11]Merb was merged with Rails as part of the Rails 3.0 release.[12][13]

Rails 3.1 was released on 31 August 2011, featuring Reversible Database Migrations, Asset Pipeline, Streaming,jQueryas defaultJavaScriptlibrary and newly introducedCoffeeScriptandSassinto the stack.[14]

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

Rails 4.0 was released on 25 June 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.[18]

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

Rails 4.2 was released on 19 December 2014, introducing Active Job, asynchronous emails, Adequate Record, Web Console, andforeign keys.[20]

Rails 5.0 was released on 30 June 2016, introducing Action Cable, API mode, and Turbolinks 5.[21]

Rails 5.0.0.1 was released on 10 August 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 27 April 2017, introducingJavaScriptintegration changes (management of JavaScript dependencies from NPM via Yarn, optional compilation of JavaScript usingWebpack,and a rewrite of Rails UJS to use vanilla JavaScript instead of depending on jQuery), system tests usingCapybara,encrypted secrets, parameterized mailers, direct & resolved routes, and a unified form_with helper replacing the form_tag/form_for helpers.[22]

Rails 5.2 was released on 9 April 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.[23]

Rails 5.2.2 was released on 4 December 2018, introducing numerous bug fixes and several logic improvements.[24]

Rails 6.0 was released on 16 August 2019, makingWebpackdefault, adding mailbox routing, a defaultonline rich-text editor,parallel testing, multiple database support, mailer routing and a new autoloader.[25]

Rails 6.1 was released on 9 December 2020, adding per-database connection switching,horizontal database sharding,eager loading of all associations, Delegated Types as an alternative to single-table inheritance, asynchronous deletion of associations, error objects, and other improvements and bug fixes.[26]

Rails 7.0 was released on 15 December 2021, replacingNode.jsandWebpackwith import maps for JavaScript management by default, replacing Turbolinks with a combination of Turbo and Stimulus, adding at-work encryption into Active Record, usingZeitwerkexclusively for code loading, and more.[27]

Rails 7.1 was released on 5 October 2023,Dockerfilessupport using Kamal in order to deploy your application, authentication improvements, and now including support forbun.[28]

Version History
Version Release Date Compatible Ruby Version(s)[29][30][31]
Old version, no longer maintained:1.0[32] 13 December 2005 1.8.6
Old version, no longer maintained:1.2[33] 19 January 2007 1.8.6
Old version, no longer maintained:2.0[34] 7 December 2007 1.8.6
Old version, no longer maintained:2.1[35] 31 May 2008 1.8.6
Old version, no longer maintained:2.2[36] 21 November 2008 1.8.7 recommended; 1.8.6 possible
Old version, no longer maintained:2.3[37] 16 March 2009 1.8.7 recommended; 1.8.6 and 1.9.1 possible
Old version, no longer maintained:3.0[38] 29 August 2010 1.9.3 recommended; 1.8.7 and 1.9.2 possible
Old version, no longer maintained:3.1[39] 31 August 2011 1.9.3 recommended; 1.8.7 and 1.9.2 possible
Old version, no longer maintained:3.2[40] 20 January 2012 1.9.3 recommended; 1.8.7 and 1.9.2 possible
Old version, no longer maintained:4.0[41] 25 June 2013 2.0 preferred; 1.9.3 or newer required
Old version, no longer maintained:4.1[19] 8 April 2014 2.0 preferred; 1.9.3 or newer required
Old version, no longer maintained:4.2[20] 19 December 2014 2.0 preferred; 1.9.3 or newer required
Old version, no longer maintained:5.0[21] 30 June 2016 2.2.2 or newer
Old version, no longer maintained:5.1[22] 10 May 2017 2.2.2 or newer
Old version, no longer maintained:5.2[23] 9 April 2018 2.2.2 or newer
Old version, no longer maintained:6.0[25] 16 August 2019 2.5.0 or newer
Older version, yet still maintained:6.1[26] 9 December 2020 2.5.0 or newer
Older version, yet still maintained:7.0[27] 15 December 2021 2.7.0 or newer
Current stable version:7.1[42] 5 October 2023 2.7.0 or newer
Future release:7.2[43] 2024[44] 3.1.0 or newer[45]
Future release:8.0[46] 2024[46] 3.3 or newer[47][48]
Legend:
Old version
Older version, still maintained
Latest version
Latest preview version
Future release


Technical overview[edit]

Ruby on Rails evolves radically from release to release exploring the use of new technologies and adopting new standards on the Internet. Some features are very stable in Ruby on Rails while some are replaced in favour of new techniques.

Model-view-controller pattern[edit]

Themodel–view–controller(MVC) pattern is the fundamental structure to organize application programming.

In a default configuration, amodelin the Ruby on Rails framework maps to a table in a database and to a Ruby file. For example, a model classUserwill 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.[49]

Acontrolleris 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 useRESTfulroutes, 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.

Aviewin the default configuration of Rails is anerbfile, which is evaluated and converted toHTMLat run-time. Alternatively, many other templating systems can be used for views.[citation needed]

Ruby on Rails includes tools that make common development tasks easier "out-of-the-box", such asscaffoldingthat can automatically construct some of the models and views needed for a basicwebsite.[50]Also included areWEBrick,a simple Ruby web server that is distributed with Ruby, andRake,a build system, distributed as agem.Together with Ruby on Rails, these tools provide a basic development environment.[citation needed]

HTTP Servers[edit]

Ruby on Rails is most commonly not connected to the Internet directly, but through some front-endweb server.Mongrelwas generally preferred[by whom?]over WEBrick in the early days,[citation needed]but it can also run onLighttpd,Apache,Cherokee,Hiawatha,Nginx(either as a module –Phusion Passengerfor example – or viaCGI,FastCGIormod ruby), and many others. From 2008 onward, Passenger replaced Mongrel as the most-used web server for Ruby on Rails.[51]Ruby is also supported natively onIBM i.[52]

JavaScript[edit]

Ruby on Rails is also noteworthy for its extensive use of theJavaScriptlibrariesPrototypeandScript.aculo.usfor scriptingAjaxactions.[53]Ruby on Rails 3.0 separates the markup of the page (which defines the structure of the page) from scripting (which determines functionality or logic of the page).

Web Services[edit]

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.

CSS[edit]

Rails 3.1 introducedSassas standardCSStemplating.

Template[edit]

By default, the server usesEmbedded Rubyin the HTML views, with files having an html.erb extension. Rails supports swapping-in alternative templating languages, such asHAMLandMustache.

Ruby versions[edit]

Ruby on Rails 3.0 has been designed to work with Ruby 1.8.7, Ruby 1.9.2, andJRuby1.5.2+; earlier versions are not supported.[54]

Ruby on Rails 3.2 is the last series of releases that support Ruby 1.8.7.

Framework structure[edit]

Ruby on Rails is separated into various packages, namelyActiveRecord(anobject-relational mappingsystem for database access), 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 makepluginsto extend existing packages. Earlier Rails supported plugins within their own custom framework; version 3.2 deprecates these in favor of standard Ruby "gems".[55]

Deployment[edit]

Ruby on Rails is often installed usingRubyGems,a package manager[56]which is included with current versions of Ruby. Many freeUnix-like systemsalso support installation of Ruby on Rails and its dependencies through their nativepackage management system.

Ruby on Rails is typically deployed with a database server such asMySQLorPostgreSQL,and a web server such asApacherunning thePhusion Passengermodule.

Philosophy and design[edit]

Ruby on Rails is intended to emphasizeConvention over Configuration(CoC), and theDon't Repeat Yourself(DRY) principle.

The Rails Doctrineis an enduring enabler that guides the philosophy, design, and implementation of the Ruby on Rails framework.

"Convention over Configuration" means a developer only needs to specify unconventional aspects of the application. For example, if there is a classSalein the model, the corresponding table in the database is calledsalesby 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.[57]

"Don't repeat yourself" means that information is located in a single, unambiguous place. For example, using theActiveRecordmodule 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.

HTML Over The Wire (Hotwire),[58][59] Conceptual compression,[60][61]and robust security[62]mark Rails 7.0's approach to the One person framework.[a]

Trademarks[edit]

In March 2007,David Heinemeier Hanssonapplied to register three Ruby on Rails-relatedtrademarkswith theUSPTO.These applications concern the phrase "RUBY ON RAILS",[64]the word "RAILS",[65]and the official Rails logo.[66]In the summer of 2007, Hansson denied the publisherApresspermission 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.[67][68]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.[67]

The trademark of the logo was cancelled on 25 October 2019.[66]

Reception[edit]

Scalability[edit]

In earlier days, Rails running onMatz's Ruby Interpreter(thede factoreference interpreter for Ruby) had been criticized for issues with scalability.[69]These critics often mentioned variousTwitteroutages in 2007 and 2008, which spurred Twitter's partial transition toScala(which runs on theJava Virtual Machine) for theirqueueing systemand othermiddleware.[70][71]The user interface aspects of the site continued to run Ruby on Rails[72]until 2011 when it was replaced due to concerns over performance.[73]On the other hand, many Rails business application developers relied on system architecture design, including choices of database engine, cache configuration, and servers, to tackle scalability issues. The original author of Rails, David Heinemeier Hansson, criticized Twitter, saying that their problems scaling were the consequences of their own poor architectural decisions and not the fault of Rails. According to Hansson, blaming Rails for their troubles while making no contributions to the framework is ungrateful and unjust.[74]

In 2011,Gartner Researchnoted that despite criticisms and comparisons to Java, many high-profile consumer web firms are using Ruby on Rails to build scalable web applications. Some of the largest sites running Ruby on Rails includeAirbnb,Cookpad,GitHub,GitLab,[75]Scribd,Shopify,andBasecamp.[76]As of January 2016, it is estimated that more than 1.2 million web sites are running Ruby on Rails.[77][78]

Security[edit]

In March 2012, security researcher Egor Homakov discovered amass assignment vulnerabilitythat allowed certain Rails applications to be remotely exploited, and demonstrated it by non-maliciously hackingGitHubafter his earlier attempts at responsible disclosure were dismissed.[79]

On 24 September 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 asCookieStore,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 asActiveRecordStore.[80]

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 15 April 2016, Near reported that an analysis of 50 popular Web applications using Space uncovered 23 previously unknown security flaws.[81]

See also[edit]

Notes[edit]

  1. ^Ruby on Rails version 7.0 allows the One-Person Framework (of which the Single page application is one approach)[63]

References[edit]

  1. ^"Rails 1.0: Party like it's one oh oh!".weblog.rubyonrails.org.13 December 2005.Retrieved1 March2017.
  2. ^"Release 7.1.3.4".4 June 2024.Retrieved26 June2024.
  3. ^"Release v6.0.3.4 · rails/rails · GitHub".GitHub.Retrieved16 December2019.
  4. ^"Getting Started with Rails: What Is Rails?".guides.rubyonrails.org.Retrieved10 August2014.
  5. ^Goswami, Shubham."Django vs Ruby on Rails – The Choice for Mobile App Development".appsearch.org.Retrieved28 November2020.
  6. ^Conrad, Adam (3 August 2021)."Episode 471: Jason Meller on Choosing the Right Tech Stack for a Greenfield Project".SE-Radio.net.IEEE.Retrieved9 November2021.
  7. ^"Breaking the Monolith at Twitch: Part One".
  8. ^Grimmer, Lenz−− (February 2006)."Interview with David Heinemeier Hansson from Ruby on Rails".MySQL AB.Archived fromthe originalon 25 February 2013.Retrieved8 June2008.
  9. ^Hansson, David (7 August 2006)."Ruby on Rails will ship with OS X 10.5 (Leopard)".weblog.rubyonrails.org.Retrieved8 June2008.
  10. ^Hansson, David (16 March 2009)."Rails 2.3: Templates, Engines, Rack, Metal, much more!".weblog.rubyonrails.org.
  11. ^"The day Merb joined Rails".rubyonrails.org.27 December 2008. Archived fromthe originalon 9 February 2013.
  12. ^"Ruby on Rails 3.0 Release Notes — Ruby on Rails Guides".edgeguides.rubyonrails.org.Retrieved24 May2017.
  13. ^"Ruby on Rails 3.0 goes modular".sdtimes.com. 10 February 2010.Retrieved6 August2010.
  14. ^"Ruby on Rails 3.1 Release Notes".guides.rubyonrails.org.1 September 2012.
  15. ^"Ruby on Rails 3.2 Release Notes".guides.rubyonrails.org.1 September 2012.
  16. ^"Rails/master is now 4.0.0.beta".weblog.rubyonrails.org.1 September 2012.
  17. ^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.
  18. ^"Rails 4.0: Final version released!".weblog.rubyonrails.org.25 June 2013.Retrieved24 May2017.
  19. ^ab"Rails 4.1.0: Spring, Variants, Enums, Mailer previews, secrets.yml".weblog.rubyonrails.org.8 April 2014.
  20. ^ab"Rails 4.2: Active Job, Asynchronous Mails, Adequate Record, Web Console, Foreign Keys".weblog.rubyonrails.org.19 December 2014.Retrieved5 December2015.
  21. ^ab"Rails 5.0: Action Cable, API mode, and so much more".weblog.rubyonrails.org.30 June 2016.Retrieved19 November2016.
  22. ^ab"Rails 5.1: Loving JavaScript, System Tests, Encrypted Secrets, and more".weblog.rubyonrails.org.27 April 2017.Retrieved10 May2017.
  23. ^ab"Rails 5.2.0 FINAL: Active Storage, Redis Cache Store, HTTP/2 Early Hints, CSP, Credentials".weblog.rubyonrails.org.9 April 2018.Retrieved9 April2018.
  24. ^rafaelfranca (4 December 2018)."Rails 5.2.2 has been released!".weblog.rubyonrails.org.Retrieved4 January2019.
  25. ^abdhh (19 August 2019)."Rails 6.0: Action Mailbox, Action Text, Multiple DBs, Parallel Testing, Webpacker by default, and Zeitwerk".weblog.rubyonrails.org.Retrieved12 November2019.
  26. ^abeileencodes (9 December 2020)."Rails 6.1: Horizontal Sharding, Multi-DB Improvements, Strict Loading, Destroy Associations in Background, Error Objects, and more!".weblog.rubyonrails.org.Retrieved28 December2020.
  27. ^abdhh (15 December 2021)."Rails 7.0: Fulfilling a vision".weblog.rubyonrails.org.Retrieved16 December2021.
  28. ^"Rails 7.1: Dockerfiles, BYO Authentication, More Async Queries, and more!".Ruby on Rails.Retrieved8 October2023.
  29. ^"Ruby/Rails Compatibility Matrix".devalot.com.Retrieved5 March2021.
  30. ^"Upgrading Ruby on Rails".guides.rubyonrails.org.Retrieved5 March2021.
  31. ^"Upgrading Ruby on Rails".edgeguides.rubyonrails.org.Retrieved5 March2021.
  32. ^"Rails 1.0: Party like it's one oh oh!".weblog.rubyonrails.org.Retrieved 9 June 2010.
  33. ^"Rails 1.2: REST admiration, HTTP lovefest, and UTF-8 celebrations"Archived2012-11-02 at theWayback Machine.weblog.rubyonrails.org.Retrieved 9 June 2010.
  34. ^"Rails 2.0: It's done!".weblog.rubyonrails.org.Retrieved 9 June 2010.
  35. ^Rails 2.1: Time zones, dirty, caching, gem dependencies, caching, etcArchived2012-11-02 at theWayback Machine.weblog.rubyonrails.org.Retrieved 9 June 2010.
  36. ^"Rails 2.2: i18n, HTTP validators, thread safety, JRuby/1.9 compatibility, docs".weblog.rubyonrails.org.Retrieved 9 June 2010.
  37. ^"Rails 2.3: Templates, Engines, Rack, Metal, much more!".weblog.rubyonrails.org.Retrieved 9 June 2010.
  38. ^"Rails 3.0: It's ready!".weblog.rubyonrails.org.Retrieved 30 August 2010.
  39. ^"bumping to 3.1.0".Github.com.
  40. ^"Preparing for 3.2.0 release".Github.com.
  41. ^"Rails 4 in 30'".blog.wyeworks.com.Archived fromthe originalon 4 December 2012.Retrieved15 December2012.
  42. ^França, Rafael."Rails 7.1: Dockerfiles, BYO Authentication, More Async Queries, and more!".rubyonrails.org.Retrieved5 October2023.
  43. ^França, Rafael."Development of Rails 7.2 starts now".GitHub.Retrieved26 September2023.
  44. ^Heinemeier Hansson, David."7.2.0 Milestones".GitHub.Retrieved26 December2023.
  45. ^Boussier, Jean."Bump the required Ruby version to 3.1.0".GitHub.Retrieved31 December2023.
  46. ^abHeinemeier Hansson, David."8.0.0 Milestones".GitHub.Retrieved31 December2023.
  47. ^França, Rafael (14 May 2024)."Reapply" Rails 8 will target Ruby 3.3+ only for new apps "".GitHub.
  48. ^Vipul, A M (17 May 2024)."Start of Rails 8 development, 7.0.8.2 & 7.1.3.3 released, Kamal by default, and lots more!".weblog.rubyonrails.org.
  49. ^"The Rails Doctrine".Ruby on Rails.Retrieved7 June2024.
  50. ^Sean Lynch (15 December 2007)."fairleads: Rails 2.0 and Scaffolding Step by Step".Fairleads.blogspot.com.Retrieved24 May2017.
  51. ^"Ruby on Rails: Deploy".rubyonrails.org.Archived fromthe originalon 7 July 2009.Retrieved3 December2012.
  52. ^Maxcer, Chris."PowerRuby Brings Enterprise Ruby on Rails Support to IBM i".iPro Developer. Archived fromthe originalon 9 October 2013.Retrieved9 May2014.
  53. ^Js_Escape_Map."ActionView::Helpers::JavaScriptHelper".Api.rubyonrails.org.Retrieved24 May2017.
  54. ^"Rails 3.0: It's ready!".weblog.rubyonrails.org.29 August 2010.Retrieved30 August2010.Rails 3.0 has been designed to work with Ruby 1.8.7, Ruby 1.9.2, and JRuby 1.5.2+.
  55. ^"Rails 3.2.0.rc2 has been released!".weblog.rubyonrails.org.1 September 2012.
  56. ^"Ruby on Rails: Download".rubyonrails.org.Archived fromthe originalon 12 December 2009.
  57. ^"Getting Started with Rails".guides.rubyonrails.org.Retrieved10 March2014.
  58. ^David Heinemeier Hansson(7 Dec 2021) The time is right for Hotwire
  59. ^David Heinemeier Hansson(6 September 2021) Rails 7 will have three great answers to JavaScript in 2021+
  60. ^David Heinemeier Hansson(19 April 2018) Conceptual compression means beginners don’t need to know SQL — hallelujah!
  61. ^David Heinemeier Hansson(15 May 2018) RailsConf 2018: Opening Keynote: FIXME by David Heinemeier HanssonConceptual compression
  62. ^David Heinemeier Hansson(31 Aug 2020) Serious security
  63. ^David Heinemeier Hansson, creator of Ruby on Rails and hey.com(19 Dec 2021) Ruby on Rails Creator Touts 7.0 as One-Person Framework, 'The Way It Used To Be'
  64. ^""Ruby on Rails" Trademark Status ".USPTO.Retrieved15 December2021.
  65. ^""Rails" Trademark Status ".USPTO.Retrieved15 December2021.
  66. ^ab"Rails Logo Trademark Status".USPTO.Retrieved15 December2021.
  67. ^abForde, Pete (23 July 2007)."Beginning Rails: From Novice to Professional".Archived fromthe originalon 5 August 2007.Retrieved1 August2007.
  68. ^Cooper, Peter (24 July 2007)."David Heinemeier Hansson says No to Use of Rails Logo".Retrieved1 August2007.
  69. ^"5 Question Interview with Twitter Developer Alex Payne".radicalbehavior.com. 29 March 2007. Archived fromthe originalon 23 April 2009.Retrieved4 November2014.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.
  70. ^Steve Jenson; Alex Payne & Robey Pointer interview (3 April 2009)."Twitter on Scala".artima.com.Retrieved18 July2009.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.
  71. ^"Twitter jilts Ruby for Scala".theregister.co.uk. 1 April 2009.Retrieved18 July2009.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."
  72. ^Ryan King (25 September 2009)."Twitter on Ruby".Evan Weaver.Retrieved29 September2009.We use Scala for a few things at Twitter, but the majority of the site is Ruby.
  73. ^"Twitter Search is Now 3x Faster".Twitter.Retrieved6 June2014.
  74. ^"I won't let you pay me for my open source".Retrieved15 December2021.
  75. ^"Why we're sticking with Ruby on Rails".GitLab.Retrieved29 August2022.
  76. ^"Here's Why Ruby On Rails Is Hot".Business Insider. Archived fromthe originalon 21 December 2011.Retrieved10 February2012.
  77. ^"Ruby on Rails Usage Statistics".trends.builtwith.com.Retrieved4 January2016.
  78. ^"Ruby on Rails Token Usage Statistics".trends.builtwith.com.Retrieved4 January2016.
  79. ^Protalinski, Emil."How GitHub handled getting hacked".Zdnet.com.Retrieved24 May2017.
  80. ^Brook, Chris (25 September 2013)."Security Issue in Ruby on Rails Could Expose Cookies".Threat Post.The Kaspersky Lab Security News Service.Retrieved4 June2014.
  81. ^"Patching up Web applications".MIT News.Retrieved21 April2016.

Bibliography[edit]

External links[edit]