Die strengen Namenskonventionen von Rails bedeuten, dass ein Großteil des Kerncodes im gleichen Format sein MUSS, egal wer ihn schreibt? Es könnte von einem Freund, einem Kollegen oder einem Computer geschrieben werden … es sollte keine Rolle spielen, weil die gleichen Rails-Regeln für alle gelten.
Das bedeutet, dass Rails tatsächlich einige Aufgaben für Sie erledigen kann!
Wenn man von einer anderen Sprache wie PHP kommt, kann das wie Magie erscheinen.
Kurzreferenz:
rails g scaffold Post name:string title:string content:textrails g controller Commentsrails g model Comment commenter:string body:text article:references
##Rails generatorDer Befehl rails generate verwendet Schablonen, die nach Konvention entworfen wurden, um eine ganze Menge nützlicher Dinge zu erstellen. Wenn man rails generate ausführt, erhält man eine Liste der verfügbaren Generatoren:
rails generate
oder für Super-Hacker:
rails g
Es gibt eine Menge Generatoren:
Rails:
- Assets
- Controller
- Generator
- Helper
- integration_test
- Mailer
- Migration
- Model
- observer
- performance_test
- resource
- scaffold
- scaffold_controller
- session_migration
- task
Coffee:
- coffee:assets
Jquery:
- jquery:install
Js:
- js:assets
##Scaffolding in Rails
Das Scaffolding-Tool von Rails ist ein schneller Weg, um einige der wichtigsten Teile des Codes in einer Anwendung zu generieren. Das spart eine Menge Zeit, wenn man schnell loslegen will! (Es ist super cool!)
Abhängig davon, was man erstellen will, kann Scaffolding alle oder eine Kombination von:
migrationsmodelsviewscontrollersunit_tests helpersstylesheetsjavascript
Es könnte noch ein paar weitere Dateien geben, die es erstellt… Ich bin mir nicht sicher, ob das eine vollständige Liste ist!
##Gerüstbau einer ganzen Ressource
Sie erstellen Gerüste für Dinge, die mit einem Objekt (Singular)
Wenn Sie eine Anwendung gerüsten wollen, müssen Sie jede Ressource innerhalb dieser Anwendung gerüsten. Wenn man zum Beispiel eine Blogging-Anwendung erstellen möchte, könnte man die gesamte Ressource „Post“ gerüsten:
rails g scaffold Post
Der Ressourcenname Post
muss lauten:
- UpperCamelCase
- SINGULAR
Dieser Name ist der Name des Modells, z.B. Post. Es wird auch der Name der Controller-Klasse (aber pluralisiert) sein, z.B. PostsController UND der Name der Tabelle (aber pluralisiert), z.B. Posts
Nach dem Klassennamen können Sie Tabellenspalten und ihre Datentypen hinzufügen.
rails g scaffold Post name:string title:string content:text
Die Namen dieser Tabellenspalten sollten lauten:
- Low_snake_case
- SINGULAR
Das liegt daran, dass jedes Post-Element einen Wert in jeder Spalte gespeichert haben soll.
Wenn Sie dieses Gerüst ausführen würden, würde es diese Dateien erstellen:
Innerhalb des PostControllers werden alle RESTful-Methoden erstellt und sie haben alle ihre entsprechenden View-Dateien.
Nach dem Erstellen der Migrationsdatei, um die Änderung an der Datenbank vorzunehmen, denken Sie daran:
rake db:migrate
##Nur einen Controller generieren
Er steuert viele Objekte (daher ist es Plural)
Manchmal möchte man nur einen Controller generieren.
rails g controller Comments
Der Name des Controllers muss lauten:
- UpperCamelCase
- PLURALIZED
Das liegt daran, dass ein Controller mit vielen Beispielen eines Objekts zu tun hat, also sollte er im Plural sein.
Dadurch werden diese Dateien erstellt:
Dadurch wird KEINE Migrationsdatei oder Modelldatei erstellt.
##Nur ein Modell erzeugen
Sie erzeugen den Umriss eines Objekts (Singular)
Wenn Sie nur ein Modell erzeugen wollen, können Sie dies tun:
rails g model Comment
- UpperCamelCase
- SINGULAR
Sie können auch die Spaltennamen hinzufügen, wenn Sie dies wünschen:
rails g model Comment commenter:string body:text article:references
Diese Tabellenspaltennamen sollten lauten:
- UntereSchlangenform
- SINGULÄR
Beim Erstellen eines Modells werden diese Dateien erstellt: