alexpchin/Rails_Generating_and_Scaffolding.md

Rails användning av strikta namnkonventioner innebär att mycket av kärnkoden borde vara i samma format oavsett vem som skriver den? Den kan vara skriven av en vän, en kollega eller en dator… det borde inte spela någon roll eftersom samma Rails-regler gäller för alla.

Detta innebär att Rails faktiskt kan göra vissa uppgifter åt dig!Det kan faktiskt bygga saker och skriva kod åt dig…

När du kommer från ett annat språk som PHP kan detta verka magiskt.

Snabbreferens:

rails g scaffold Post name:string title:string content:textrails g controller Commentsrails g model Comment commenter:string body:text article:references

##Rails generatorKommandot Rails generate använder mallar som är utformade efter konvention för att skapa en hel del användbara saker. Om du kör rails generate i sig själv får du en lista över tillgängliga generatorer:

rails generate

eller för superhackare:

rails g

Det finns många generatorer:

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 i Rails

Rails verktyg för scaffolding är ett snabbt sätt att generera några av de viktigaste kodbitarna i en applikation. Detta sparar mycket tid när du vill komma igång snabbt! (Det är superhäftigt!)

Beroende på vad du vill skapa kan scaffolding automatiskt generera alla eller en kombination av:

migrationsmodelsviewscontrollersunit_tests helpersstylesheetsjavascript

Det kan finnas ytterligare några filer som det gör… Jag är inte säker på att det är en fullständig lista!

##Scaffolding a whole resource

Du scaffoldar saker som är associerade med ett objekt (singular)

Om du vill scaffolda ett program måste du scaffolda varje resurs i det programmet. Om du vill göra ett bloggprogram till exempel – så kan du ställa in hela Post-resursen:

rails g scaffold Post

Resursnamnet Post måste vara:

  • UpperCamelCase
  • SINGULAR

Det här namnet kommer att vara namnet på modellen, t.ex. Post. Det kommer också att vara namnet på kontrollantklassen (men i plural), t.ex. PostsController OCH namnet på tabellen (men i plural), t.ex. posts

Efter klassnamnet kan du lägga till tabellkolumner och deras datatyper.

rails g scaffold Post name:string title:string content:text

Dessa tabellkolonnnamn bör vara:

  • lower_snake_case
  • SINGULAR

Detta beror på att varje Post-objekt är tänkt att ha ett värde lagrat i varje kolumn.

Om du körde den här ställningen skulle den skapa dessa alla filer:

Inom PostController kommer alla RESTful-metoder att skapas och de kommer alla att ha sina motsvarande visningsfiler.

Efter att ha skapat migrationsfilen, för att göra ändringen i databasen, kom ihåg att köra:

rake db:migrate

##Generera bara en controller

Den kontrollerar många objekt (så det är plural)

Ibland vill du generera bara en controller.

rails g controller Comments

Controllernamnet måste vara:

  • UpperCamelCase
  • PLURALIZED

Detta beror på att en controller hanterar många exempel på ett objekt, så det bör vara i plural.

Det här kommer att skapa de här filerna:

Det här kommer INTE att skapa en migrationsfil eller en modellfil.

##Generera bara en modell

Du genererar konturerna av ett objekt (singular)

Om du bara vill skapa en modell kan du göra:

rails g model Comment
  • UpperCamelCase
  • SINGULAR

Du kan också lägga till kolumnnamnen till detta om du vill:

rails g model Comment commenter:string body:text article:references

Dessa tabellkolonnnamn bör vara:

  • lower_snake_case
  • SINGULAR

Generering av en modell kommer att skapa dessa filer:

Lämna ett svar

Din e-postadress kommer inte publiceras.