Schlagwort-Archive: RoR

passenger spawn_manager

Habe mir unlängst eine Spielwiese für Ruby on Rails 3.0.8 auf Debian 6.0 eingerichtet. Auch die Passenger Einrichtung ist heute auf Debian schon ein Klacks und funktionierte, wie man hier sieht.
Mit git hatte ich keine Erfahrung, aber ich will auch damit spielen, also habe ich mich schnell eingearbeitet und es hat mich überzeugt. Ein wirklich hervorragendes und sehr mächtiges Version Control System. Sogar das zentrale Repository mit gitosis und gitweb funktionierte nach einigen Spielereien mit den Schlüsseln.
Von einer entwicklungs-sub.domain.xx muss man sein RoR-Projekt natürlich noch bequem auf eine production.domain.xx schieben können, also kam Capistrano ins Spiel.
Stundenlang kamen immer wieder seltsame Fehlermeldungen von einem passenger spawn_manager im error.log vom Apachen – der sich mit einem 500er error code verweigerte – die darauf hingedeutet haben, dass etwas mit dem spawn server nicht in Ordnung war.

Nun habe ich das Problem gelöst und alles was nicht 100%ig meinen Vorstellungen entspricht, sind die Fehlermeldungen und meine Genauigkeit, denn natürlich war ich wieder einmal selbst schuld, da ich in der deploy.rb den Pfad zum Repository falsch setzte. Naja, ich hab ja eh nur den “.” vor “git” vergessen. LOL

Gegen dau-Fehler schützt auch RoR nicht

Unlängst begann ich wieder mit RoR herum zu spielen und war ganz begeistert, weil es so einfach zu installieren war, siehe Ruby on Rails 3.0 auf Debian 6.0. Bei der nächsten Sitzung wollte ich MySQL statt SQLight verwenden und erlebte so richtige original-dau-Wunder. Übrigens steht “dau” hier für “dümmster anzunehmender user” und der bin offensichtlich ich selbst. Ich ging nach den Rails Guides vor, da ich ja nur einmal testen wollte, ob auch alles wirklich so funktioniert, wie ich mir das vorstellte. Hm, es gab die ersten Probleme, siehe Kommentare im oben genannten Artikel mit mysql2 und verschiedenen Versionen. Es wollte einfach nicht richtig funktionieren und da entschloss ich mich wegen der Anmerkung auf Getting Started with Rails

Note that Ruby 1.8.7 p248 and p249 have marshaling bugs that crash Rails 3.0. Ruby Enterprise Edition have these fixed since release 1.8.7-2010.02 though. On the 1.9 front, Ruby 1.9.1 is not usable because it outright segfaults on Rails 3.0, so if you want to use Rails 3 with 1.9.x jump on 1.9.2 for smooth sailing.

die Ruby Enterprise Edition zu verwenden. Die Installation war einfach und verlief reibungslos, doch ich war zu faul, um auch das Phusion Passenger Modul neu zu installieren, weshalb mein erster Test mit MySQl wieder nicht funktionieren konnt. Wieso ich das überhaupt versucht habe, weiß ich nicht, aber nachdem ich das Modul neu installierte und den Pfad anpasste sollte es soweit sein. Nein, es ging wieder nicht, sondern ich las “We are sorry, but something went wrong!”.
Gut, aber im log-file fand ich die Lösung, denn da stand etwas, wie: “Lieber dau, wenn sie schon unbedingt, pruduction, test und developement gleichzeitig machen wollen, dann legen sie doch bitte wenigstens eine DB für production an”, oder so ähnlich.
OK, ich war damit einverstanden und jetzt funktioniert es auch und ich kann mich endlich ein wenig mit git spielen, bevor ich nach langer Pause wieder mit den ersten Entwicklungsversuchen mit RoR beginne.

Ruby on Rails 3.0.6 auf Ubuntu 10.10

Wer sich noch schnell RoR 3.0.6 auf Ubuntu 10.10 installieren möchte, bevor Ubuntu 11.04 in ein paar Tagen erscheint, findet hier eine gute Anleitung: Installing Rails 3 on Ubuntu 10.04 Lucid Lynx die auch auf Ubuntu 10.10 funktioniert. Also zuerst Ruby 1.9.2 installieren und über gem dann rails.

Ich musste nur noch einen Symlink setzten, damit Ubuntu rails auch findet
sudo ln -s /usr/local/rvm/gems/ruby-1.9.2-p180/gems/rails-3.0.6/bin/rails /usr/bin/rails

Weblinks:
Installing RVM
Ruby
Ruby on Rails
RubyGems.org
git

Nach Minuten hat man unter Verwendung von sqlite die erste Testversion mit etwa folgender Umgebung:
Ruby version 1.9.2 (i686-linux)
RubyGems version 1.6.2
Rack version 1.2
Rails version 3.0.6
Active Record version 3.0.6
Action Pack version 3.0.6
Active Resource version 3.0.6
Action Mailer version 3.0.6
Active Support version 3.0.6
Middleware
Ruby on Rails 3.0.6 auf Ubuntu 10.10 weiterlesen

RoR 3.0 released

Neu ist z.B. Action Dispatch is new in Rails 3.0 and provides a new, cleaner implementation for routing.
Als Hilfe zum Upgrade gibt es ein eigenes plugin, siehe rails-upgrade, außerdem ist Ruby 1.9.2 “for smooth sailing” empfohlen, siehe Ruby on Rails 3.0 Release Notes.

Ah, ja, das hatte ich schon wieder vergessen ENV[“RAILS_ENV”] ||= “production” oder “development” kann auch direkt in der /config/environment.rb gesetzt werden.

Erste Schritte mit Rails

Nachdem ich mich nun schon ein wenig umgesehen und auch schon so einiges in Ruby und Rails ausprobiert habe, lese ich noch einmal “Getting Started with Rails“. Damit es nicht langweilig wird, Rails soll ja Spaß machen, die automatische Übersetzung von Google. Die Übersetzungen sind dabei als

blockquote

gekennzeichnet.
Was ist Rails?

Rails ist ein Web-Entwicklungs-Framework in die Sprache Ruby geschrieben. … Rails ist eine Software, rechthaberisch. Das ist, nimmt es an, dass es einen besten Weg, Dinge zu tun, und es ist so konzipiert, dass am besten zu fördern – und in einigen Fällen, um Alternativen zu entmutigen. Wenn Sie lernen, “The Rails Way”

….
Ok, Rails ist also eine rechthaberische Software, die zu Alternativen entmutigt. LOL
Die Prinzipien:

  • DRY – “Don’t Repeat Yourself”
  • Konvention über Konfiguration
  • REST

REST – die Organisation Ihrer Bewerbung um Mittel und Standard- HTTP- Verben ist der schnellste Weg zu gehen

… oder siehe dazu REST Web Services
Die MVC bzw. Model, View, Controller-Architektur
* Isolierung der Geschäftslogik von der Benutzeroberfläche
* einfache Haltung Code DRY
* macht deutlich, wo verschiedene Arten von Code für einfachere Wartung hin gehören
Modelle

Ein Modell stellt die Informationen (Daten) über den Antrag und die Regeln zu manipulieren, dass die Daten.

Meist wird eine Tabelle der DB einem Modell entsprechen und den Großteil der Geschäftslogik der Anwendung enthalten.

Views

2.1.2 Aufrufe
Views stellen die Benutzeroberfläche Ihrer Anwendung. In Rails sind Ansichten oft HTML -Dateien mit eingebetteten Ruby-Code, der Daten übernimmt Aufgaben im Zusammenhang ausschließlich auf die Präsentation der. Aufrufe Griff die Aufgabe der Bereitstellung von Daten an den Web-Browser oder ein anderes Tool, das Ihre Anwendung wird verwendet, um Anfragen aus.

Ok, also in Rails sind Ansichten oft HTML-Dateien und Aufrufe Griff die Aufgabe der Bearbeitung von Daten an den Web-Browser … ja, das war mir von vornherein klar, ich habe verstanden, aber jetzt wird es kompliziert und klebrig:
Controller

Controller können den “Klebstoff” zwischen den Modellen und Ansichten. In Rails, …

sind Controller zuständig für die Bearbeitung der eingehenden Anfragen aus dem Web-Browser und die Modelle für die Abfrage und Weitergabe der Daten an die Views für Präsentation.
Die Komponenten von Rails
Schade, ich hätte mir eine Aktions-Aussicht oder ähnliches erwartet, aber der Übersetzer streikt:
* Action Controller
* Action View
* Active Record
* Action Mailer
* Active Resource
* Railties
* Active Support
Action Controller – verwaltet die Controller; eingehende Anfragen werden verarbeitet, Parameter werden extrahiert, und weiter gereicht …

.., Extrakte Parameter und verschickt sie gegen das beabsichtigte Vorgehen.

Session-Management, Template-Rendering und redirect-Management sind hier angesiedelt.

Action View – zum Verwalten und Rendern von Vorlagen
Active Record – die Basis der Modelle, sorgt für Datenbank Unabhängigkeit, CRUD -Funktionalität und erweiterte Funktionen.
Ach ja, nicht zu vergessen:

und die Fähigkeit, andere beziehen sich auf ein Modell, unter anderen Diensten.

Action Mailer – für E-Mails Dienste …
Active Resource – implementiert eine Möglichkeit, um Web-basierte Ressourcen auf lokale Objekte über CRUD Semantik abzubilden.

Railties

Railties ist der Kern Rails-Code, der neue Rails-Anwendungen und Leime die verschiedenen Frameworks zusammen in einer Rails-Anwendung baut.

Jetzt ist es offenkundig, um welchen Klebstoff es oben ging, um Leim. LOL
Active Support – Sammlung von Utility-Klassen und Standard-Ruby-Erweiterungen …
natürlich

dass in den Schienen eingesetzt werden, …

REST

Die Gründung der REST-Architektur wird allgemein als, werden Roy Fielding Doktorarbeit Baustile und die Gestaltung von Netzwerk-basierten Software-Architekturen. Glücklicherweise müssen Sie nicht lesen,….

Bis jetzt war es recht unterhaltsam, aber nun wechsle ich doch lieber wieder zur Originalversion, denn die Code-Zeilen werden – das ist ja zu langweilig – leider auch nicht nach Deutsch übersetzt.