Mit Ruby on Rails unter Windows loslegen

Hier eine kurze Übersicht, wie ich mit Ruby on Rails und Ruby unter Windows 10 angefangen habe.

Setup-Dateien downloaden und installieren

  1. Ordner „C:\Ruby“ erstellen.
  2. Ruby-Installer-Datei „rubyinstaller-2.3.1-x64.exe“ oder neuer von rubyinstaller.org/downloads downloaden und nach „C:\Ruby\Ruby23-x64“ installieren.
  3. Ruby-Development-Kit-Datei „DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe“ oder neuer von rubyinstaller.org/downloads downloaden und nach „C:\Ruby\ruby-dev-kit“ installieren.
  4. Ruby-on-Rails-Datei „railsinstaller-3.2.0.exe“ oder neuer von railsinstaller.org/en downloaden und nach „C:\ruby\RailsInstaller“ installieren. Die Websites liegen später in C:\Sites.

Wichtig hierbei: Installationspfade dürfen keine Leerzeichen enthalten.

Installationen konfigurieren

Ruby Development Kit konfigurieren, so wie hier beschrieben:

  1. cmd.exe starten.
  2. cd c:\ruby\ruby-dev-kit ausführen.
  3. ruby dk.rb init aufrufen.
  4. ruby dk.rb install aufrufen.
  5. Falls Fehler auftreten, die Datei „C:\ruby\ruby-dev-kit\config.yml“ mit einem Texteditor öffnen und eine Zeile analog zu - C:/ruby/Ruby23-x64 einfügen.
  6. Dann nochmals ruby dk.rb install aufrufen.

Rails installieren, so wie im Getting-Started-Dokument beschrieben:

  1. cmd.exe starten.
  2. ruby -v aufrufen. Muss die Versionsnummer anzeigen.
  3. sqlite3 --version aufrufen. Muss die Versionsnummer anzeigen.
  4. gem install rails aufrufen. Eventuelle Firewall-Meldungen mit „Ja“ bestätigen.
  5. rails --version aufrufen. Muss die Versionsnummer anzeigen.

Den Bundler installieren:

  1. cmd,.exe starten.
  2. gem install bundler ausführen.

Eine Beispiel-Rails-Website erstellen

So wie im Getting-Started-Dokument beschrieben:

  1. cmd.exe starten.
  2. Nach cd c:\sites wechseln.
  3. rails new blog aufrufen.

Die Beispiel-Rails-Website starten

So wie im Getting-Started-Dokument beschrieben vorgehen:

  1. cmd.exe starten.
  2. Nach cd c:\sites\blog wechseln.
  3. ruby c:\ruby\RailsInstaller\Ruby2.2.0\bin\rails server aufrufen und den Server starten.
  4. Im Browser jetzt auf http://localhost:3000/ navigieren.

Damit sollte die Anwendung dann laufen und so was anzeigen wie:

Beim Aufruf der URL sollte im Konsolenfenster ein Log der abgerufenen URLs/Inhalte angezeigt werden.

Der Server wird mit Strg+C wieder gestoppt.

Anwendung entwickeln

Jetzt kann ich mit dem Anpassen der Beispiel-Anwendung beginnen, so wie im Abschnitt „4.2 Say ‚Hello‘, Rails“ beschrieben.

Troubleshooting — Fehler nach dem Hinzufügen des ersten Views/Controllers

Nachdem ich eine View erstellt habe, so wie im Abschnitt „4.2 Say ‚Hello‘, Rails“ beschrieben, habe ich einen Fehler im Browser bekommen:

ExecJS::ProgramError in Welcome#index

Showing C:/Sites/blog/app/views/layouts/application.html.erb where line #7 raised:

TypeError: Das Objekt unterstützt diese Eigenschaft oder Methode nicht.
Extracted source (around line #7):

<%= csrf_meta_tags %>

<%= stylesheet_link_tag ‚application‘, media: ‚all‘, ‚data-turbolinks-track‘: ‚reload‘ %>
<%= javascript_include_tag ‚application‘, ‚data-turbolinks-track‘: ‚reload‘ %>

Rails.root: C:/Sites/blog

Laut Stack Overflow gibt es Probleme mit coffee-script-source 1.9.0 unter Windows.

Die Lösung war dann:

  1. „C:\Sites\blog\Gemfile“ mit einem Texteditor bearbeiten.
  2. In Zeile 2 eine Zeile gem 'coffee-script-source', '1.8.0' ergänzen.
  3. Mit dem zuvor installierten Bundler jetzt bundle install aufrufen:
    1. cmd.exe starten.
    2. cd c:\sites\blog aufrufen.
    3. bundle update coffee-script-source aufrufen.

Troubleshooting — Fehler nach dem Bundling-Update

Anschließend hatte ich einen weiteren Fehler beim Starten der Website:

C:/ruby/Ruby23-x64/lib/ruby/gems/2.3.0/gems/sqlite3-1.3.11-x64-mingw32/lib/sqlite3.rb:6:in `require’: cannot load such file – sqlite3/sqlite3_native (LoadError)

Laut Stack Overflow muss ein Pfad angepasst werden:

  1. Die Datei „C:\ruby\Ruby23-x64\lib\ruby\gems\2.3.0\specifications\sqlite3-1.3.11-x64-mingw32.gemspec“ (oder neuer) mit einem Texteditor öffnen.
  2. Die Zeile s.require_paths = ["lib"] suchen.
  3. Diese Zeile ändern in s.require_paths = ["lib/sqlite3"] (bzw. entsprechend der vorhanden Versionsnummer anpassen).

Das hat bei mir funktioniert, anschließend konnte ich den Server starten.

Die Meldung kam dann erneut im Browser; ich habe einfach nochmals F5 im Browser gedrückt, also die Seite neu geladen.

Anschließend kam ein Fehler:

ActiveRecord::ConnectionNotEstablished
No connection pool with id primary found.

Aufgeben

Ich gebe jetzt erst mal auf und versuche mich mit der integrierten Entwicklungsumgebung (IDE) RubyMine.

Ggf. probiere ich die oberen Schritte alle nochmals mit den 32-Bit-Versionen der Tools aus, anstatt den 64-Bit-Versionen und hoffe, dass weniger Fehler auftreten.

Dein Setup verstehe ich nicht.
Setup-Dateien downloaden und installieren:

Entweder Punkt 1…3:
1: …
2.„rubyinstaller-2.3.1-x64.exe“ …
3.„DevKit-mingw64-64-4.7.2-20130224-1432-sfx.exe“ …

Oder nur Punkt 4:
4. „C:\ruby\RailsInstaller“ … (hier ist ruby und devkit schon enthalten)

Beides ist ja doppelt installiert.

1 Like

Das war mir unklar, dass das doppelt gemoppelt ist, Heiner.

Guter Tipp auf jeden Fall, vielen Dank!

Ich mache immer Schritte 1…3 mit der Ruby 32-bit Version unter Windows 7 Professional 64bit.
(Ruby Version 2.3.1 funktioniert bei mir noch nicht wegen sqlite3-Probleme).

  1. Ich nehme Ruby-Version 2.2.5 (32bit) und installieren.

  2. Dann dazugehörge Dev-Kit installieren und konfigurieren (dk.rb init und dk.rb install).

  3. gem install sqlite3
    Test sqlite3 mit irb.bat:
    require „sqlite3“
    => true
    quit
    Wenn true, dann funktioniert sqlite3.

  4. gem install rails

  5. Annahme PATH=c:/…/ruby225/bin;…
    Gehe zum Beispiel ins Verzeichnis c:\temp oder c:\sites:
    rails new blog
    cd blog
    rails server (oder rails s)

  6. Browser starten und Zugriff mit http://localhost:3000

1 Like

Danke! Mein Ziel ist ja in mittlerer Zukunft, einen Importer von WBB nach Discourse zu schreiben, dafür brauche ich aus meiner Sicht Grundverständnis von Ruby.

Hast Du mit RubyMine positive/negative Erfahrungen?

Ich bin in Ruby fortgeschritten und in Rails Anfänger.
RubyMine habe ich noch nie ausprobiert.

1 Like

Hast Du auch Erfahrungen mit Vagrant?

Ich habe das zwar halbwegs zum Laufen bekommen, jedoch überhaupt keine Ahnung, wie ich jetzt Ruby-Code programmieren soll für so eine Vagrant-Discourse-Virtualbox-Installation.

Irgendwie muss mein Editor und meine Dateien doch in die virtuelle Maschine „hinein kommen“, oder?

Nein, habe ich nicht.
Vielleicht über ssh (putty).

1 Like

Ha, witzig, RubyMine unterstützt wohl Vagrant nativ. :thumbsup:

Ansonsten unterstützt Vagrant auch so genannte Synced Folders um Dateien zwischen Host und Guest zu teilen/nutzen.

Super, werde ich auch mal probieren.

1 Like