Zurück zur Skill-Übersicht

Skill-Wissen und Projektmarkt

Ruby on Rails

Freelancer, Projekte, Experten und Wissen rund um Ruby on Rails.

Kategorie

Backend

Einordnung

Ruby on Rails Freelancer, Projekte, Experten und Wissen auf jobtic.com

Ruby on Rails gehört zu den gefragtesten Kompetenzen im modernen IT-Projektmarkt. Unternehmen, Recruiter, Projektanbieter und Agenturen suchen kontinuierlich nach qualifizierten IT-Freelancern, Beratern, Entwicklern, Consultants, Administrators, Engineers und Spezialisten mit Erfahrung in Ruby on Rails.

Auf jobtic.com finden Unternehmen und Freelancer eine moderne Plattform für IT-Projekte, Projektvermittlung, Freelancer-Profile, Experten-Suche, Projektakquise und berufliche Vernetzung rund um Ruby on Rails und viele weitere Technologien, Tools, Systeme, Methoden und IT-Bereiche.

Wikipedia

Ruby on Rails

Artikel öffnen
Rails ist eine Weiterleitung auf diesen Artikel. Für das Sporthindernis siehe Rail.

Ruby on Rails, kurz Rails, früher auch oft kurz RoR, ist ein ursprünglich von David Heinemeier Hansson in der Programmiersprache Ruby geschriebenes quelloffenes Webframework. Es wurde im Juli 2004 zum ersten Mal der Öffentlichkeit vorgestellt.

Rails ist geprägt von den Prinzipien „don’t repeat yourself“ (DRY) und „Konvention vor Konfiguration“: Das heißt, statt einer variablen Konfiguration sind Konventionen für die Namensgebung von Objekten einzuhalten, aus denen sich deren Zusammenspiel automatisch ergibt. Diese Funktionen ermöglichen eine rasche Umsetzung von Anforderungen.

Konzept

Rails folgt der „Model View Controller“-Architektur (MVC) und besteht aus fünf Modulen:

Active Support
Ruby-Erweiterungen von Rails
Active Record
Objektabstraktionsschicht basierend auf dem objekt-relationalen Muster oder Model (ORM) (das „M“ aus MVC) von Martin Fowler
Action Pack
Request-Behandlung und Response-Ausgabe. Die Anfragen werden durch eine öffentliche Methode des Controllers (Action Controller, das „C“ aus MVC) behandelt. Die Ausgabe wird mittels eines Templates (Action View, das „V“ aus MVC) vorgenommen.
Action Mailer
E-Mail-Versand und -Empfang
Active Resource
Mit Version 2.0 wurde Action Webservice durch Active Resource ersetzt: Web-Service-Programmierung, Unterstützung für XML-RPC und REST.

Rails integriert die JavaScript-Frameworks Prototype und Script.aculo.us und bietet so Methoden zur einfachen Entwicklung von Ajax-Applikationen.

Geschichte

Version 1.0

Ursprünglich wurde Rails für die webbasierte Projektmanagementsoftware Basecamp entwickelt, dann jedoch daraus extrahiert und im Juli 2004 zum ersten Mal der Öffentlichkeit vorgestellt. Die Version 1.0 wurde am 13. Dezember 2005 fertiggestellt.

Version 1.1

Schon am 28. März 2006 folgte die Version 1.1. Neu waren vor allem

  • RJS (Ruby on Rails JavaScript Templates), das es ermöglichte, Templates für JavaScript zu erstellen, sowie
  • Verbesserungen an ActiveRecord, die es unter anderem erlauben, polymorphe Assoziationen zu benutzen.
  • Außerdem wurde die Performance verbessert.[6]

Version 1.2

Am 19. Januar 2007 erschien die Version 1.2. Highlights der Version 1.2 waren vor allem

  • REST,
  • Routing nach MIME-Type und
  • ein Interface zur sicheren Behandlung von UTF-8-Strings.

Außerdem wurde eine Handvoll von Methoden als deprecated gekennzeichnet. Diese gaben daraufhin Warnungen aus und es wurde angekündigt, dass sie aus dem nächsten Major-Release – der Version 2.0 – aus Rails entfernt werden.[7]

Version 2.0

Am 7. Dezember 2007 erschien nach knapp einem Jahr Entwicklungsarbeit Rails 2.0.[8] Sie brachte mehrere hundert Neuerungen mit sich und vollzog die Umstellung von SOAP zu REST als Plattform für Web Services.[9]

Version 2.1

Am 1. Juni 2008 erschien die Version 2.1, die einige Verbesserungen und Neuerungen brachte:

  • Behandlung von Zeitzonen optimiert
  • Erlaubt das Definieren der Anwendung von Abhängigkeiten zu RubyGems und kann Änderungen an Models verfolgen, wodurch auch die Datenbankzugriffe effizienter werden.
  • Named-Scopes eingeführt, mit denen Queries mit häufig benötigten Bedingungen definiert werden können.
  • Migrations wurden dahingehend geändert, dass diese nicht mehr durchnummeriert werden, sondern einen Zeitstempel erhalten. Die frühere Handhabung führte beim Entwickeln in Teams zu Problemen, wenn gleichzeitig zwei Entwickler eine neue Migration erstellten, die dann die gleiche Nummer erhielt.[10]

Version 2.2

Die Version 2.2 erschien am 21. November 2008. Sie brachte unter anderem folgendes:

  • Internationalisierung: Durch Integration des l18n-Gems steht nun eine standardmäßige API für die Internationalisierung zur Verfügung.
  • Rails ist ab dieser Version kompatibel zu Ruby 1.9 und JRuby
  • Unterstützt etag und last-modified in HTTP-Headern. Seiten, die sich seit dem letzten Besuch nicht geändert haben, müssen so nicht erneut gesendet werden.
  • Threadsicherheit

Version 2.3

Die Version 2.3 erschien am 15. März 2009. Sie umfasste neben vielen kleineren Verbesserungen sogenannte Templates. Diese dienen dazu, immer wieder benötigte Konfigurationen direkt mit der Erstellung der Applikation generieren zu lassen. Mit den Engines wurde es ermöglicht, Applikationen wie Plugins in andere Rails Applikationen einzubetten. Nested forms erlauben es nun komfortabel, definierte Abhängigkeiten zwischen Models im View abzubilden. Rails basiert ab dieser Version auf der Middleware Rack und erlaubt daher auch den Zugriff direkt auf diese. Mit Rails Metal wurde es möglich, Applikationsteile die sehr häufig aufgerufen werden und nur simple Funktionalität bereitstellen, stark zu beschleunigen. Dabei verzichtet der Entwickler jedoch auf den meisten Komfort, den Rails sonst bieten würde.

Version 3.0

Am 29. August 2010 wurde Rails 3.0 veröffentlicht.[11] Rails wurde in dieser Version mit dem zweiten großen Ruby-Webframework Merb zusammengeführt.[12] Zudem wurde Rails modularer gestaltet. Dies soll es einerseits erleichtern, Teile von Rails (bspw. ActiveRecord) außerhalb von Rails einzusetzen. Zugleich ist es nun einfacher möglich, auf Wunsch bestimmte Teile von Rails durch andere Bibliotheken zu ersetzen. Des Weiteren wurde die Javascript-Unterstützung auf Unobtrusive JavaScript umgestellt.

Version 3.1

Ein erstes Update von Rails 3 wurde am 31. August 2011 veröffentlicht.[13] In dieser Version wurde die Asset Pipeline eingeführt, mit der alle CSS- und Javascript-Dateien vor der Auslieferung in je eine Datei zusammengefügt und komprimiert werden. Dies soll die Geschwindigkeit verbessern. Auf der Front-End-Seite kommen seit 3.1 Sass für die Entwicklung von Stylesheets und CoffeeScript als JavaScript-Präprozessor zum Einsatz. Die Standard-Bibliothek für JavaScript ist seither nicht mehr Prototype, sondern jQuery.[14]

Version 3.2

Am 20. Januar 2012 wurde Version 3.2 veröffentlicht.[15] Darin wurde unter anderem die Performance des Entwicklungsmodus verbessert.

Version 4.0

Am 25. Juni 2013 wurde Version 4.0 veröffentlicht.[16]

Version 4.1

Am 8. April 2014 wurde Version 4.1.0 veröffentlicht.[17]

Version 4.2

Am 19. Dezember 2014 wurde Version 4.2.0 veröffentlicht.[18]

Version 5.0

Am 30. Juni 2016 wurde Version 5.0 veröffentlicht. Wesentliche Neuerungen sind die Integrationen von Action Cable, einer WebSocket-Implementierung in Ruby, Generatoren für schlanke Web-APIs und eines eigenen Test-Frameworks namens Test Runner.[19]

Version 5.1

Am 27. April 2017 wurde Version 5.1 veröffentlicht. Wesentliche Neuerungen sind die Unterstützung von Yarn, einem Paketverwalter für Javascript-Abhängigkeiten und Webpack, einem Asset-Bundler für JavaScript. Weiter wurden die Methoden zum Generieren von Web-Formularen (form_for, form_tag) vereinheitlicht (zu form_with), Tests mittels Webbrowsern (Capybara) integriert und JQuery als zwingende Abhängigkeit entfernt.[20]

Version 5.2

Am 9. April 2018 wurde Version 5.2.0 veröffentlicht.[21]

Version 6.0

Am 15. August 2019 wurde Version 6.0.0 veröffentlicht. Neuerungen in dieser Version sind Webpack als Standard für JavaScript, Action Mailbox, Action Text, paralleles Testen, die Unterstützung multipler Datenbanken und ein neuer Autoloader.[22]

Version 6.1

Am 9. Dezember 2020 wurde Version 6.1.0 veröffentlicht. Wesentliche Neuerungen sind die Unterstützung von Horizontaler Fragmentierung sowie die Möglichkeit die Datenbankverbindung individuell zu wechseln.[23]

Philosophie

Als Grundprinzipien von Rails gelten „Don’t repeat yourself“ (Wiederhole dich nicht) und „Convention over configuration“ (Konvention vor Konfiguration).

„Don’t repeat yourself“
→ Hauptartikel: Don’t repeat yourself
Jede Information sollte nur ein einziges Mal vorhanden sein. So reicht es in Rails beispielsweise dank ActiveRecord, die Spalten einer Tabelle nur in der Datenbank festzulegen. Anstatt diese Informationen noch ein zweites Mal im Quellcode oder einer Konfigurationsdatei kodiert zu verlangen, liest ActiveRecord diese Informationen direkt aus der Datenbank. Rails erstellt für das Model automatisch Getter- und Setter-Methoden, damit die Daten einfach in die Datenbank geschrieben bzw. von dort gelesen werden können. Dieses Verfahren hat auch den Vorteil, dass die Informationen nicht inkonsistent werden können, falls beispielsweise die Datenbank geändert, dies aber für die Konfigurationsdatei vergessen wurde.
„Convention over Configuration“
→ Hauptartikel: Konvention vor Konfiguration
Rails erwartet sinnvolle Standardwerte. Erwartet wird etwa, dass der Primärschlüssel einer Tabelle vom Typ Integer ist und ID heißt, dass ein Modell mit dem Namen Customer in der Datei #{Rails.root}/app/models/customer.rb gespeichert ist und die zugehörige Tabelle customers heißt. Ist dieses Modell über eine 1:N-Beziehung mit einem Modell Contract verknüpft, so wird erwartet, dass in der Tabelle contracts ein Fremdschlüssel mit dem Namen customer_id vorhanden ist. Wenn diese Standardwerte nicht zutreffen, können sie einfach umkonfiguriert werden, in den meisten Fällen bleibt der Entwickler jedoch von den ausführlichen Konfigurationsmöglichkeiten verschont.

Scaffolding

Mittels des eingebauten Scaffolding (deutsch etwa: Gerüstbau) ist es möglich, Web-Anwendungen on the fly zu entwickeln. Wenn in der Datenbank etwa ein Feld hinzugefügt wird, erscheint es auch sofort in der entsprechenden View/New/Edit-Ansicht. Die Möglichkeit des sofortigen Visualisierens eines Datenbankfeldes und das Verknüpfen diverser Datenbankoperationen mit ebendiesem Textfeld wird oftmals auch mit dem Begriff CRUD (Create, Read, Update, Delete) oder CRUD-Framework bezeichnet. Scaffolding ist vor allem für Prototyping gedacht und wird in produktiven Anwendungen fast immer mit eigenem Code ergänzt.

Webserver-Unterstützung

Zum Entwickeln und Testen bietet sich der zum Ruby-Paket gehörende Webserver WEBrick als Applikationsserver an. Für den produktiven Einsatz können z. B. Apache oder Lighttpd mit FastCGI genutzt werden, aber auch jeder andere Webserver mit CGI- oder FastCGI-Unterstützung funktioniert. Eine weitere Möglichkeit stellt der größtenteils in Ruby geschriebene Webserver Mongrel dar, der im Gegensatz zu WEBrick für den Einsatz in einer Systemumgebung geeignet ist. Von dem Apache-Modul mod ruby wird in der Regel abgeraten, stattdessen wird Phusion Passenger (auch als mod_rails bezeichnet) empfohlen. Dieses ist nicht nur besonders schnell und wartungsarm, es ist hierbei im Gegensatz zu allen anderen genannten Servern auch nicht nötig, den Webserver neu zu starten, wenn eine Applikation erneut aktiviert wird. Dies ist insbesondere beim Shared Hosting wichtig.

Schichten

Model

Das Back-end einer Rails-Applikation bildet im Normalfall eine relationale Datenbank. Der Zugriff auf diese wird mit Hilfe von ActiveRecord hergestellt. Dabei handelt es sich um eine ORM-Schicht, welche eine Klasse auf eine Tabelle und ein Attribut auf eine Spalte abbildet. Ein Datensatz in einer solchen Tabelle entspricht genau einer Instanz. Derzeit werden eine Reihe bekannter Datenbanken wie SQLite, Db2, Informix, MySQL, Oracle, PostgreSQL, MongoDB, Microsoft SQL Server und Sybase unterstützt.

Weiterhin besteht die Möglichkeit, ein anderes Format zu verwenden (z. B. XML-Dateien) oder vollständig auf ein Backend zu verzichten. Dank dem in Rails 3.0 eingeführten Plugin-API kann man die ORM-Bibliothek frei wählen, sodass neben ActiveRecord unter anderem auch Sequel und Datamapper, welche heute schon von vielen Merb-Anwendungen genutzt werden, zur Verfügung stehen.

Controller

Die Steuerungsschicht einer Rails-Applikation wird mithilfe der ActionController-Klasse hergestellt. Diese ist Bestandteil der ActionPack-Bibliothek. Ein Controller kapselt eine bestimmte Geschäftslogik und bietet Schnittstellen, um mit dieser kontrolliert zu interagieren. Diese Schnittstellen werden Actions genannt. Ein üblicher Rails-Request (z. B. URL: //servername.net/controller/action) enthält den Namen des anzusprechenden Controllers. Dieser ist äquivalent zu dem Klassennamen. Weiterhin wird eine spezielle Action aufgerufen, diese wird innerhalb der Controller-Klasse als Methode dargestellt. Über den eingebauten Routing-Mechanismus besteht jedoch die Möglichkeit, einen solchen Rails-Request nach den eigenen Bedürfnissen anzupassen.

View

Für die Präsentationsschicht ist die Klasse ActionView zuständig. Diese ist ebenfalls Bestandteil der ActionPack-Bibliothek. Folgende Ausgabeformate werden zurzeit von Rails unterstützt:

Zusätzlich werden die folgenden Templatesysteme angeboten:

Weiterhin besteht die Möglichkeit den HTTP-Header selbst zu manipulieren und so andere Formate an den Client zu senden.

Middleware Rack

Merb, Sinatra, Ramaze und Camping sind wie Rails auch Ruby-Frameworks, die die Middleware Rack benutzen und somit auch vermischt werden können. Ab Rails-Version 3 sind Rails und Merb fusioniert.

Literatur

  • Denny Carl: Praxiswissen Ruby on Rails, 2007
  • Rob Orsini: Rails Kochbuch, 2007
  • Stefan Tennigkeit, Michael Voigt: Ruby on Rails 3: Mit DataMapper, I18N & L10N und Volltextsuche mit Sphinx, entwickler.press, 1. Auflage 2010, ISBN 978-3-86802-026-7
  • Ralf Wirdemann und Thomas Baustert: Rapid Web Development mit Ruby on Rails, Hanser, ³2008, ISBN 3-4464-1498-3

Weblinks

Commons: Ruby on Rails – Sammlung von Bildern, Videos und Audiodateien
Wikibooks: Websiteentwicklung: Ruby on Rails – Lern- und Lehrmaterialien
Wikibooks: Tutorial und Nachschlagewerk – Lern- und Lehrmaterialien

Einzelnachweise

  1. rubyonrails.org/core (Memento des Originals vom 5. Dezember 2012 im Webarchiv archive.today)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/www.rubyonrails.org - Ruby-Core-Team
  2. Release (8.1.3). (abgerufen am 26. März 2026).
  3. The rails Open Source Project on Open Hub: Languages Page. In: Open Hub. (abgerufen am 3. September 2018).
  4. github.com. 6. Juli 2025.
  5. github.com. (abgerufen am 6. August 2017): „Ruby on Rails is released under the MIT License.
  6. Riding Rails: Rails 1.1: RJS, Active Record++, respond_to, integration tests, and 500 other things! Archiviert vom Original am 5. August 2010; abgerufen am 6. Oktober 2012 (englisch).
  7. Riding Rails: Rails 1.2: REST admiration, HTTP lovefest, and UTF-8 celebrations. Archiviert vom Original am 12. Juni 2011; abgerufen am 6. Oktober 2012 (englisch).
  8. Rails 2.0: It's done! Abgerufen am 6. Oktober 2012 (englisch).
  9. Jo Bager: Web-Applikationsumgebung Ruby on Rails 2.0 ist fertig. Abgerufen am 6. Oktober 2012.
  10. Riding Rails: Rails 2.1: Time zones, dirty, caching, gem dependencies, caching, etc. Archiviert vom Original am 12. Juni 2011; abgerufen am 6. Oktober 2012 (englisch).
  11. Riding Rails: Rails 3.0: It's ready. Abgerufen am 12. April 2012 (englisch).
  12. Rails Weblog: Merb gets merged into Rails 3! Abgerufen am 6. Oktober 2012.
  13. Riding Rails: Rails 3.1.0 has been released! 31. August 2011, abgerufen am 12. April 2012 (englisch).
  14. Morsy und Otto 2012: Ruby on Rails 3.1, S. 28
  15. Riding Rails: Rails 3.2.0: Faster dev mode & routing, explain queries, tagged logger, store. 20. Januar 2012, abgerufen am 12. April 2012 (englisch).
  16. Release Notes: Riding Rails: Rails 4.0: Final version released! 25. Juni 2013, abgerufen am 25. Juli 2013 (englisch).
  17. Release Notes: Rails 4.1.0: Spring, Variants, Enums, Mailer previews, secrets.yml. 8. April 2014, abgerufen am 5. August 2014 (englisch).
  18. Release Notes: Rails 4.2: Active Job, Asynchronous Mails, Adequate Record, Web Console, Foreign Keys. 19. Dezember 2014, abgerufen am 21. Dezember 2014 (englisch).
  19. Release Notes: Ruby on Rails 5.0 Release Notes. Abgerufen am 19. Juli 2016 (englisch).
  20. Release Notes: Ruby on Rails 5.1 Release Notes. Abgerufen am 31. Januar 2018 (englisch).
  21. Release Notes: Rails 5.2.0 FINAL. 9. April 2018, abgerufen am 3. August 2018 (englisch).
  22. Release Notes: Rails 6.0 Final Release. 15. August 2019, abgerufen am 21. März 2020 (englisch).
  23. Release Notes: Ruby on Rails 6.1 Release Notes. 9. Dezember 2020, abgerufen am 29. Mai 2021 (englisch).
Normdaten (Sachbegriff): GND: 7516633-1 (GND Explorer, lobid, OGND)
Wikipedia

Dieser Text basiert auf dem Artikel Ruby on Rails aus der freien Enzyklopädie Wikipedia und steht unter der Lizenz Creative Commons CC-BY-SA 3.0 Unported. Eine Liste der Autoren ist in der Wikipedia verfügbar.

Ruby on Rails auf jobtic.com

Backend

Experten finden

jobtic.com verbindet IT-Freiberufler, Selbstständige, Consultants, Projektanbieter, IT-Dienstleister und Unternehmen in einer zentralen IT-Projektbörse für den deutschsprachigen Markt. Die Plattform unterstützt die Suche nach Ruby on Rails Freelancern, Ruby on Rails Projekten, Contracting-Einsätzen, Remote-Projekten, IT-Jobs, Interim-Rollen, technischen Experten und spezialisierten Beratern.

Chancen entdecken

Freelancer profitieren von einer professionellen Präsentation ihrer Expertise im Bereich Ruby on Rails und erhalten Zugriff auf aktuelle Projektangebote, Projektanfragen und neue Karrierechancen im IT-Freelancer-Markt. Durch moderne Such- und Filterfunktionen lassen sich passende Projekte, Auftraggeber, Recruiter und Kontakte schnell identifizieren.

Wissen einordnen

Neben der Projekt- und Expertenplattform bietet jobtic.com umfangreiche Informationen, Hintergründe und Wiki-Inhalte rund um Ruby on Rails. Dazu gehören Grundlagen, Definitionen, Einsatzbereiche, Entwicklungen, Versionen, Methoden, technische Zusammenhänge, Best Practices und aktuelle Marktinformationen zu Ruby on Rails.

Vernetzung stärken

Unsere jobtic-Übersicht zu Ruby on Rails kombiniert Wissensdatenbank, Projektbörse, Freelancer-Verzeichnis, Experten-Suche und Projektmarkt in einer zentralen Plattform. Besucher finden hier sowohl Informationen zu Ruby on Rails als auch passende Freelancer, Berater, Entwickler, Consultants, Administratoren, Support-Spezialisten und aktuelle IT-Projekte mit Bezug zu Ruby on Rails.

Kontakte aufbauen

jobtic.com unterstützt Freelancer und Unternehmen dabei, schneller passende Projekte, Experten und Geschäftskontakte im Bereich Ruby on Rails zu finden. Egal ob Projektakquise, Expertenvermittlung, Freelancer-Suche, Contracting, IT-Consulting oder spezialisierte Projektbesetzung - jobtic.com bietet die passende Plattform für den modernen IT-Projektmarkt.

Zentral vernetzen

Wer nach Ruby on Rails Freelancern, Ruby on Rails Experten, Ruby on Rails Projekten, Ruby on Rails Beratern, Ruby on Rails Consulting, Ruby on Rails Contracting, Ruby on Rails Projektbörse, Ruby on Rails Freelancer-Profilen oder aktuellen Entwicklungen rund um Ruby on Rails sucht, findet auf jobtic.com eine zentrale Anlaufstelle für Wissen, Projekte und professionelle Vernetzung im IT-Umfeld.

Passende Projekte zu Ruby on Rails

Mehr Projekte

Projekte veröffentlichen

Unternehmen können Projekte mit Anforderungen, Laufzeiten, Technologien, Einsatzorten, Remote-Anteilen, Budgetrahmen und Projektbeschreibungen veröffentlichen. Gleichzeitig ermöglicht jobtic.com die gezielte Suche nach verfügbaren Ruby on Rails Spezialisten mit passenden Erfahrungen, Branchenkenntnissen und technischen Fähigkeiten.

Aktuell sind keine sichtbaren Projekte verfügbar.