Ruby on Rails Tutorial
Erste Schritte mit Ruby on Rails
Suche…
Bemerkungen
Ruby on Rails (RoR) oder Rails ist ein beliebtes Open-Source-Framework für Webanwendungen. Rails verwendet Ruby, HTML, CSS und JavaScript, um eine Webanwendung zu erstellen, die auf einem Webserver ausgeführt wird. Rails verwendet das Model-View-Controller-Muster (MVC) und bietet eine Fülle von Bibliotheken von der Datenbank bis zur Ansicht.
Versionen
Ausführung | Veröffentlichungsdatum |
---|---|
5.1.2 | 2017-06-26 |
5,0 | 2016-06-30 |
4.2 | 2014-12-19 |
4.1 | 2014-04-08 |
4,0 | 2013-06-25 |
3.2 | 2012-01-20 |
3.1 | 2011-08-31 |
3,0 | 2010-08-29 |
2.3 | 2009-03-16 |
2,0 | 2007-12-07 |
1.2 | 2007-01-19 |
1.1 | 2006-03-28 |
1,0 | 2005-12-13 |
Erstellen einer Ruby on Rails-Anwendung
In diesem Beispiel wird davon ausgegangen, dass Ruby und Ruby on Rails bereits ordnungsgemäß installiert wurden. Wenn nicht, können Sie hier nachlesen, wie es geht .
Öffnen Sie eine Befehlszeile oder ein Terminal. Um eine neue Schienenanwendung zu generieren, verwenden Sie den neuen Befehl schienen gefolgt vom Namen Ihrer Anwendung:
$ rails new my_app
Wenn Sie Ihre Rails-Anwendung mit einer bestimmten Rails-Version erstellen möchten, können Sie diese zum Zeitpunkt der Erstellung der Anwendung angeben. Verwenden Sie dazu rails _version_ new
gefolgt vom Namen der Anwendung:
$ rails _4.2.0_ new my_app
Dadurch wird eine Rails-Anwendung namens MyApp
in einem my_app
Verzeichnis erstellt und die my_app
Abhängigkeiten, die bereits in Gemfile
mithilfe der Gemfile
bundle install
.
Um zum Verzeichnis Ihrer neu erstellten App zu wechseln, verwenden Sie den Befehl cd
( change directory
.
$ cd my_app
Das Verzeichnis my_app
enthält eine Reihe automatisch generierter Dateien und Ordner, aus denen sich die Struktur einer Rails-Anwendung zusammensetzt. Es folgt eine Liste der Dateien und Ordner, die standardmäßig erstellt werden:
Aktenordner | Zweck |
---|---|
App / | Enthält die Controller, Modelle, Ansichten, Helfer, Mailer und Assets für Ihre Anwendung. |
Behälter/ | Enthält das Rails-Skript, das Ihre App startet, und kann andere Skripts enthalten, die Sie zum Einrichten, Aktualisieren, Bereitstellen oder Ausführen Ihrer Anwendung verwenden. |
config / | Konfigurieren Sie die Routen, die Datenbank usw. Ihrer Anwendung. |
config.ru | Rack-Konfiguration für Rack-basierte Server, die zum Starten der Anwendung verwendet werden. |
db / | Enthält Ihr aktuelles Datenbankschema sowie die Datenbankmigrationen. |
Gemfile Gemfile.lock | Mit diesen Dateien können Sie angeben, welche Edelsteinabhängigkeiten für Ihre Rails-Anwendung erforderlich sind. Diese Dateien werden vom Bundler-Gem verwendet. |
lib / | Erweiterte Module für Ihre Anwendung. |
Log/ | Anwendungsprotokolldateien. |
Öffentlichkeit/ | Der einzige Ordner, der von der Welt so gesehen wird. Enthält statische Dateien und kompilierte Assets. |
Rakefile | Diese Datei sucht und lädt Aufgaben, die von der Befehlszeile aus ausgeführt werden können. Die Aufgabendefinitionen werden in allen Komponenten von Rails definiert. |
README.md | Dies ist eine kurze Anleitung für Ihre Anwendung. Sie sollten diese Datei bearbeiten, um anderen Benutzern mitzuteilen, was Ihre Anwendung tut, wie sie eingerichtet werden soll |
Prüfung/ | Komponententests, Vorrichtungen und andere Testgeräte. |
Temp / | Temporäre Dateien (wie Cache- und PID-Dateien). |
Verkäufer/ | Ein Ort für den Code von Drittanbietern. In einer typischen Rails-Anwendung gehören dazu auch Edelsteine. |
Jetzt müssen Sie eine Datenbank aus Ihrer database.yml
Datei erstellen:
rake db:create
# OR
rails db:create
rake db:create
Nachdem wir die Datenbank erstellt haben, müssen wir Migrationen ausführen, um die Tabellen einzurichten:
rake db:migrate
# OR
rails db:migrate
rake db:migrate
Um die Anwendung zu starten, müssen wir den Server hochfahren:
$ rails server
# OR
$ rails s
Rails startet die Anwendung standardmäßig an Port 3000. Um die Anwendung mit einer anderen Portnummer zu starten, müssen wir den Server hochfahren, z.
$ rails s -p 3010
Wenn Sie in Ihrem Browser zu http: // localhost: 3000 navigieren, wird eine Willkommensseite von Rails angezeigt, auf der angezeigt wird, dass Ihre Anwendung jetzt ausgeführt wird.
Wenn ein Fehler ausgegeben wird, können mehrere Probleme auftreten:
- Es gibt ein Problem mit der
config/database.yml
- Sie haben Abhängigkeiten in Ihrer
Gemfile
, die nicht installiert wurden. - Sie haben ausstehende Migrationen.
rails db:migrate
- Falls Sie zu den vorherigen Migrationsschienen wechseln,
rails db:rollback
Wenn das immer noch einen Fehler ausgibt, sollten Sie Ihre config/database.yml
überprüfen
Erstellen Sie eine neue Rails-App mit Ihrer Datenbankauswahl und dem RSpec Testing Tool
Rails verwendet sqlite3
als Standarddatenbank. Sie können jedoch eine neue Rails-Anwendung mit einer Datenbank Ihrer Wahl erstellen. Fügen Sie einfach die Option -d
gefolgt vom Namen der Datenbank.
$ rails new MyApp -T -d postgresql
Dies ist eine (nicht erschöpfende) Liste der verfügbaren Datenbankoptionen:
- Mysql
- Orakel
- postgresql
- sqlite3
- Frontbase
- ibm_db
- SQL Server
- jdbcmysql
- jdbcsqlite3
- jdbcpostgresql
- JDBC
Der Befehl -T zeigt an, dass die Installation von Minitest übersprungen wird. Um eine alternative Testsuite wie RSpec zu installieren, bearbeiten Sie die Gemfile und fügen Sie sie hinzu
group :development, :test do
gem 'rspec-rails',
end
Starten Sie dann den folgenden Befehl von der Konsole aus:
rails generate rspec:install
Einen Controller generieren
Um einen Controller zu generieren (z. B. Posts
), navigieren Sie von einer Befehlszeile oder einem Terminal zu Ihrem Projektverzeichnis und führen Sie Folgendes aus:
$ rails generate controller Posts
Sie können diesen Code verkürzen, indem Sie generate
durch g
ersetzen. Beispiel:
$ rails g controller Posts
Wenn Sie die neu generierte app / controller / posts_controller.rb öffnen , wird ein Controller ohne Aktionen angezeigt :
class PostsController < ApplicationController
# empty
end
Es ist möglich, Standardmethoden für den Controller zu erstellen, indem Sie Controller-Namensargumente übergeben.
$ rails g controller ControllerName method1 method2
Um einen Controller in einem Modul zu erstellen, geben Sie den Controller-Namen als Pfad an, wie parent_module/controller_name
. Zum Beispiel:
$ rails generate controller CreditCards open debit credit close
# OR
$ rails g controller CreditCards open debit credit close
Dadurch werden die folgenden Dateien generiert:
Controller: app/controllers/credit_cards_controller.rb
Test: test/controllers/credit_cards_controller_test.rb
Views: app/views/credit_cards/debit.html.erb [...etc]
Helper: app/helpers/credit_cards_helper.rb
Ein Controller ist einfach eine Klasse, die definiert ist, um von ApplicationController
zu erben.
In dieser Klasse definieren Sie Methoden, die zu den Aktionen für diesen Controller werden.
Generieren Sie eine Ressource mit Gerüsten
Von guides.rubyonrails.org:
Anstatt ein Modell direkt zu generieren. . . Lassen Sie uns ein Gerüst aufstellen. Ein Gerüst in Rails umfasst einen vollständigen Satz von Modellen, die Datenbankmigration für dieses Modell, den Controller, der es manipuliert, Ansichten zum Anzeigen und Bearbeiten der Daten und eine Testsuite für jedes der oben genannten.
Hier ein Beispiel für ein Gerüst einer Ressource namens Task
mit einem String-Namen und einer Textbeschreibung:
rails generate scaffold Task name:string description:text
Dadurch werden die folgenden Dateien generiert:
Controller: app/controllers/tasks_controller.rb
Test: test/models/task_test.rb
test/controllers/tasks_controller_test.rb
Routes: resources :tasks added in routes.rb
Views: app/views/tasks
app/views/tasks/index.html.erb
app/views/tasks/edit.html.erb
app/views/tasks/show.html.erb
app/views/tasks/new.html.erb
app/views/tasks/_form.html.erb
Helper: app/helpers/tasks_helper.rb
JS: app/assets/javascripts/tasks.coffee
CSS: app/assets/stylesheets/tasks.scss
app/assets/stylesheets/scaffolds.scss
Beispiel zum Löschen von Dateien, die vom Scaffold für die Ressource Task
generiert wurden
rails destroy scaffold Task
Erstellen Sie eine neue Rails-App mit einem nicht standardmäßigen Datenbankadapter
Rails ist standardmäßig mit ausgeliefert ActiveRecord
ein ORM (Object Relational Mapping) aus dem Muster abgeleitet mit dem gleichen Namen .
Als ORM ist es darauf ausgelegt, relationales Mapping zu handhaben, und genauer durch die Verarbeitung von SQL-Anforderungen für Sie, daher die Beschränkung auf SQL-Datenbanken.
Sie können jedoch weiterhin eine Rails-App mit einem anderen Datenbankverwaltungssystem erstellen:
- Erstellen Sie einfach Ihre App ohne Active-Record
$ rails app new MyApp --skip-active-record
-
Gemfile
Sie Ihr eigenes Datenbankverwaltungssystem inGemfile
gem 'mongoid', '~> 5.0'
-
bundle install
und befolgen Sie die Installationsschritte in der gewünschten Datenbank.
In diesem Beispiel handelt es sich bei mongoid
um eine Objektzuordnung für MongoDB
Wie viele andere für Rails gebaute Datenbank- ActiveModel
erbt auch ActiveModel
die gleiche Methode wie ActiveRecord
, die eine gemeinsame Schnittstelle für viele Funktionen wie Validierungen, Rückrufe, Übersetzungen usw. bietet .
Zu anderen Datenbankadaptern gehören unter anderem:
Datamapper
Folgeschienen
Erstellen von Rails-APIs in JSON
In diesem Beispiel wird davon ausgegangen, dass Sie Erfahrung mit der Erstellung von Rails-Anwendungen haben.
Führen Sie den folgenden Befehl aus, um eine API-only-App in Rails 5 zu erstellen
rails new name-of-app --api
Fügen Sie active_model_serializers in Gemfile hinzu
gem 'active_model_serializers'
Installieren Sie das Bundle im Terminal
bundle install
ActiveModelSerializer
Sie den ActiveModelSerializer
Adapter so ein, dass er verwendet werden soll :json_api
# config/initializers/active_model_serializer.rb
ActiveModelSerializers.config.adapter = :json_api
Mime::Type.register "application/json", :json, %w( text/x-json application/jsonrequest application/vnd.api+json )
Generieren Sie ein neues Gerüst für Ihre Ressource
rails generate scaffold Task name:string description:text
Dadurch werden die folgenden Dateien generiert:
Controller: App / Controller / Aufgabencontroller.rb
Test: test/models/task_test.rb
test/controllers/tasks_controller_test.rb
Routes: resources :tasks added in routes.rb
Migration: db/migrate/_create_tasks.rb
Model: app/models/task.rb
Serializer: app/serializers/task_serializer.rb
Controller: app/controllers/tasks_controller.rb
Schienen installieren
Rails auf Ubuntu installieren
Auf einem sauberen Ubuntu sollte die Installation von Rails einfach sein
Aktualisieren von Ubuntu-Paketen
sudo apt-get update
sudo apt-get upgrade
Installieren Sie Ruby und Rails Abhängigkeiten
sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev
Ruby-Versionsmanager installieren In diesem Fall verwendet rbenv das einfachste
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
Ruby Build installieren
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
Shell neu starten
exec $SHELL
Ruby installieren
rbenv install 2.3.1
rbenv global 2.3.1
rbenv rehash
Schienen montieren
gem install rails
Rails unter Windows installieren
Schritt 1: Ruby installieren
Wir benötigen die Programmiersprache Ruby. Wir können eine vorkompilierte Version von Ruby mit dem Namen RubyInstaller verwenden.
- Laden Sie Ruby Installer von rubyinstaller.org herunter und führen Sie es aus.
- Führen Sie das Installationsprogramm aus. Aktivieren Sie das Kontrollkästchen "Ruby-ausführbare Dateien zu Ihrem PATH hinzufügen" und installieren Sie dann.
- Um auf Ruby zuzugreifen, öffnen Sie das Windows-Menü, klicken Sie auf Alle Programme, gehen Sie zu Ruby und klicken Sie auf "Eingabeaufforderung mit Ruby starten". Ein Eingabeaufforderungsterminal wird geöffnet. Wenn Sie
ruby -v
und die Eingabetaste drücken, sollte die installierte Ruby-Versionsnummer angezeigt werden.
Schritt 2: Ruby Development Kit
Nach der Installation von Ruby können wir versuchen, Rails zu installieren. Einige Bibliotheken, die Rails benötigt, benötigen einige Build-Tools, um kompiliert zu werden, und Windows fehlen diese Tools standardmäßig. Sie können dies feststellen, wenn beim Versuch, Rails Gem::InstallError: The '[gem name]' native gem requires installed build tools.
zu installieren, ein Fehler Gem::InstallError: The '[gem name]' native gem requires installed build tools.
Um dies zu beheben, müssen wir das Ruby Development Kit installieren.
- Laden Sie das DevKit herunter
- Führen Sie das Installationsprogramm aus.
- Wir müssen einen Ordner angeben, in dem das DevKit dauerhaft installiert wird. Ich empfehle, es im Stammverzeichnis Ihrer Festplatte unter
C:\RubyDevKit
. (Verwenden Sie keine Leerzeichen im Verzeichnisnamen.)
Jetzt müssen wir die DevKit-Tools für Ruby verfügbar machen.
- Wechseln Sie an Ihrer Eingabeaufforderung in das DevKit-Verzeichnis.
cd C:\RubyDevKit
oder das Verzeichnis, in dem Sie es installiert haben. - Wir müssen ein Ruby-Skript ausführen, um das DevKit-Setup zu initialisieren.
ruby dk.rb init
. Jetzt sagen wir das gleiche Skript, um das DevKit unserer Ruby-Installation hinzuzufügen.ruby dk.rb install
.
Das DevKit sollte jetzt für Ihre Ruby-Tools zur Installation neuer Bibliotheken verfügbar sein.
Schritt 3: Schienen
Jetzt können wir Rails installieren. Rails ist ein Rubin-Juwel. Geben Sie in Ihre Eingabeaufforderung Folgendes ein:
gem install rails
Wenn Sie die Eingabetaste drücken, lädt das gem
Programm diese Version des Rails-Gem und alle anderen Edelsteine herunter, auf die Rails angewiesen ist.
Schritt 4: Node.js
Für einige Bibliotheken, von denen Rails abhängig ist, muss eine JavaScript-Laufzeitumgebung installiert sein. Installieren wir Node.js, damit diese Bibliotheken ordnungsgemäß funktionieren.
- Laden Sie das Installationsprogramm für Node.js hier herunter.
- Wenn der Download abgeschlossen ist, besuchen Sie den Download-Ordner und führen Sie das Installationsprogramm
node-v4.4.7.pkg
. - Lesen Sie die vollständige Lizenzvereinbarung, akzeptieren Sie die Bedingungen und klicken Sie im Rest des Assistenten auf Weiter, wobei die Standardeinstellungen beibehalten werden.
- Es erscheint ein Fenster, in dem Sie gefragt werden, ob die App Änderungen an Ihrem Computer vornehmen soll. Klicken Sie auf "Ja".
- Nach Abschluss der Installation müssen Sie Ihren Computer neu starten, damit Rails auf Node.js zugreifen kann.
Vergessen Sie nicht, nach dem Neustart des Computers das Windows-Menü aufzurufen, klicken Sie auf "Alle Programme", blättern Sie zu Ruby und klicken Sie auf "Eingabeaufforderung mit Ruby starten".