Ruby on Rails

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 15 mars 2021; kontroller kräver 17 redigeringar .
Ruby on Rails
Sorts webbramverk
Författare Hansson, David Heinemeyer
Utvecklaren Hansson, David Heinemeyer
Skrivet i Ruby [2]
Första upplagan 13 december 2005
senaste versionen
Licens MIT-licens [3]
Hemsida rubyonrails.org
 Mediafiler på Wikimedia Commons

Ruby on Rails ( RoR ) är ett ramverk skrivet i programmeringsspråket Ruby som implementerar Model-View-Controller- arkitekturmönstret för webbapplikationer och som även tillhandahåller deras integration med en webbserver och en databasserver. Det är öppen källkod och distribueras under MIT-licensen .

Skapad av David Heinemeier Hansson baserat på hans arbete på 37signals på Basecamps projektledningsverktyg och släpptes i juli 2004 . Den 23 december 2008 slog Merb- projektgruppen sig ihop med Rails-teamet för att skapa nästa version av Rails 3, som kommer att kombinera de bästa funktionerna i båda ramverken.

Baserat på följande applikationsutvecklingsprinciper:

Arkitektur

Huvudkomponenterna i applikationer i Ruby on Rails är modellen ( engelsk  modell ), view ( engelsk  vy ) och controller ( engelsk  controller ). Ruby on Rails använder REST -stilen för att bygga webbapplikationer.

Modellen förser resten av applikationen med en objektorienterad visning av data (som en produktkatalog eller beställningslista). Modellobjekt kan ladda och spara data i en relationsdatabas, och även implementera affärslogik.

Rails 3 använder ActiveRecord- biblioteket för att lagra modellobjekt i en relations-DBMS som standard . Konkurrerande analog — DataMapper. Det finns plugins för att arbeta med icke-relationella databaser , som Mongoid för att arbeta med MongoDB .

Vyn skapar användargränssnittet med hjälp av data som tas emot från styrenheten. Vyn skickar också användarens förfrågningar om datamanipulation till kontrollanten (i allmänhet ändrar vyn inte direkt modellen).

I Ruby on Rails beskrivs en vy med ERB- mallar , som är HTML -filer med ytterligare inkludering av Ruby -kodavsnitt (Embedded Ruby eller ERb). Utdata som genereras av den inbyggda Ruby-koden ingår i malltexten, varefter den resulterande HTML-sidan returneras till användaren. Utöver ERB är det möjligt att använda ytterligare ett 20-tal mallmotorer, inklusive Haml .

En styrenhet i Rails är en uppsättning logik som körs när en HTTP-begäran tas emot av servern. Regulatorn ansvarar för att anropa modellens metoder och börjar rendera vyn.

Överensstämmelsen mellan Internet-adressen och styrenhetens åtgärd (rutt) anges i config/routes.rb.

En kontroller i Ruby on Rails är en klass som ärver från ActionController::Baseför stationära applikationer och ActionController::APIför API :er [4] . Den registeransvariges offentliga metoder är de så kallade åtgärderna .  En handling motsvarar ofta en separat uppfattning. Till exempel skulle en användarförfrågan anropa en klassmetod och sedan använda vyn från . admin/indexindexAdminControllerindex.html.erbviews/admin

Integration

Den föredragna metoden för att integrera med webbservrar är proxy - att använda en webbserver som proxy framför applikationsservern. Phusion Passenger-moduler sticker ut för integration med Apache- och nginx- servrar .

Ruby on Rails använder Rack -gränssnittet , vilket tillåter användning av mindre vanliga mekanismer (FCGI, CGI, SCGI). Ruby on Rails kan fungera med Apache, Lighttpd eller vilken annan webbserver som helst som stöder FastCGI . För utveckling och felsökning används Pumas webbserver (tidigare WEBrick , inbäddad i Ruby eller Mongrel). MySQL , PostgreSQL , Firebird , DB2 , Oracle och Microsoft SQL Server stöds som databasserver . En inbäddad SQLite - databas stöds också .

För Windows finns det en Instant Rails- distribution som är konfigurerad och redo att gå direkt ur lådan för att utveckla Rails-applikationer, som inkluderar Apache-servern och MySQL DBMS, såväl som RubyInstaller-distributionen, som inkluderar de senaste versionerna av Ruby och utvecklarverktyg. För Windows, Linux och macOS -plattformar finns det ett omfattande BitNami RubyStack [5] -installationsprogram som innehåller allt du behöver för Rails-utveckling, inklusive Ruby, RubyGems , Ruby on Rails, MySQL, Apache, Mongrel och Subversion.

Dessutom erbjuder BitNami.org och JumpBox.com [6] gratis VMware - bilder med en färdig Linux-miljö för att distribuera RoR-applikationer. Dessa bilder kan anslutas till din VM-server eller distribueras i molnet som tillhandahålls .

För att utveckla AJAX- applikationer i RoR (före version 5.1) användes jQuerys javascript-ramverk som standard , men andra bibliotek kan användas istället. I tidiga versioner av Ruby on Rails (före 3.1) var standard js-ramverket Prototype .

Länkbibliotek

Som ett plugin-förråd använder Ruby on Rails ett ekosystem av  RubyGems- paket  ,  även kallade gems . Vissa plugins har inkluderats i basdistributionen av Rails över tiden, såsom Sass och CoffeeScript ; andra, även om de inte ingår i basdistributionen, är de facto-standarden för de flesta utvecklare (till exempel RSpec -enhetstestverktyget ).

Från och med version 3 av Rails har det funnits en tendens att flytta en del av funktionaliteten till separata "jams", dels på grund av deras snabbare utveckling än Rails själva, dels för att göra ramverket lättare.

Lite sylt:

Utvecklings- och testverktyg

Olika textredigerare och IDE :er används för att skapa Ruby on Rails-applikationer , inklusive:

Bland applikationstestverktygen som stöder Ruby on Rails är:

Användning

Ruby on Rails har använts flitigt i skapandet av populära sajter som Netflix [9] , Bloomberg , Zendesk [9] , Twitter , SoundCloud , Airbnb , Diaspora , Groupon , Basecamp , GitHub , Hulu , Scribd , Kickstarter , Change.org , Bleacher Report [10] , SlideShare , ASKfm , Upwork , Mastodon och andra.

Anteckningar

  1. Rails 7.0.4, 6.1.7 och 6.0.6 har släppts! – 2022.
  2. The Rails Open Source Project på Open Hub: Languages-sidan - 2006.
  3. https://github.com/rails/rails/blob/master/README.md
  4. ActionController::API  : [ arch. 2019-02-19 ]. — Ruby on Rails. — Tillträdesdatum: 2019-02-19.
  5. BitNami :: RubyStack . Hämtad 22 februari 2008. Arkiverad från originalet 20 februari 2008.
  6. JumpBox för Ruby on Rails-distribution | Arkiverad från originalet den 2 januari 2010, JumpBox Virtual Appliances and Applications for Cloud Computing
  7. Community Engine arkiverad 28 maj 2009 på Wayback Machine // Ett plugin för socialt nätverk för Ruby on Rails
  8. Visual Studio Code Ruby Extension  : [ arch. 2019-02-19 ]. — Microsoft. — Tillträdesdatum: 2019-02-19.
  9. 1 2 5 Kommersiell användning fortsätter att bevisa värdet av Ruby on Rails  : [ arch. 2019-02-19 ]. - Engine Yard, 2018. - 11 april. — Tillträdesdatum: 2019-02-19.
  10. Kelly Smith. 37 sajter du ÄLSKAR Byggda med rubin på skenor  : [ arch. 2019-02-19 ]. - Skill Crush, 2018. - 29 april. — Tillträdesdatum: 2019-02-19.

Litteratur

Länkar