Možná jste se při učení Rails & dočetli, že pro spuštění aplikace Rails musíte vytvořit „scaffold“…
Jednoduché!
To můžete udělat pomocí příkazu rails g scaffold
.
Ale co je to lešení?“
„Lešení je dočasná konstrukce sloužící jako opora pro pracovní četu, která pomáhá při stavbě, údržbě a opravách budov, mostů a všech dalších konstrukcí vytvořených člověkem.“ – Wikipedie
Přeloženo do jazyka Rails:
Lesení je sada automaticky generovaných souborů, které tvoří základní strukturu projektu Rails.
Tyto soubory zahrnují:
- Kontrolér
- Model
- Pohledy pro každou standardní akci kontroléru (index, edit, show, new)
Novou trasu.
A migrace pro přípravu databáze.
Podívejme se na příklad!
Jak používat příkaz Rails Scaffold
Příklad sestavení projektu lešení pro web o knihách by vypadal takto.
rails g scaffold books
Měli byste vidět spoustu rolovacího textu, který podrobně popisuje vytvářené soubory.
Tento příklad vytváří:
- A
BooksController
- Model
Book
- Novou
resources :books
trasu přidanou do souboruconfig/routes.rb
- Soubor souborů souvisejících s testováním
- Pohled na soubory pod
app/views/books
(celkem pět)
Ano.
To je hodně věcí.
Pokud chcete toto lešení zrušit, můžete hned po jeho vytvoření použít následující příkaz.
rails d scaffold books
Kde „d“ znamená „destroy“.
Mějte na paměti, že tím dojde k ODSTRANĚNÍ souborů vytvořených procesem tvorby lešení.
Nyní:
Předtím, než budete moci používat kód vytvořený pomocí scaffoldingu, musíte spustit migraci, abyste aktualizovali schéma databáze.
Použijte příkaz rails db:migrate
.
Pokud se neobjeví žádné chybové hlášení, jste připraveni! Máte základní strukturu pro svou novou aplikaci Rails nebo pro novou funkci, která potřebuje nový model, pohledy & odpovídající kontrolér.
Další:
Spusťte rails server
.
Otevřete prohlížeč localhost:3000/books
&měli byste vidět výsledky!
Rails Scaffolding With Extra Fields
Ve výchozím nastavení…
Váš model dostane pouze pole časových razítek, což znamená, že jediná informace, kterou můžete o svých knihách (nebo jakémkoli modelu, se kterým pracujete) zaznamenat, je čas, kdy byly vytvořeny, případně aktualizovány.
Tady je návod, jak vytvořit lešení s dalšími poli:
rails g scaffold books title:string author:string publication_year:integer
Pokud si takto vygenerujete lešení, budete mít k dispozici 3 pole, se kterými můžete pracovat.
Název, autora a rok vydání.
To je trochu zajímavější než mít jen časové značky z databáze.
Btw.
Toto je stejná syntaxe, jakou používáme při vytváření migrací pomocí rails g migration
.
Generování specifických komponent
Při vytváření lešení se vytvářejí věci, které možná právě teď nepotřebujete nebo nechcete.
Ale Rails je pěkný.
Příkazem rails g
(g jako generate) můžete vytvořit jednotlivé komponenty, například kontroléry.
Příklad:
rails g controller Fruit
-
rails g model Fruit name:string color:string
(vytvoří model + migraci) -
rails g migration CreateBook title:string year:integer
(vytvoří pouze migraci)
Jednou z velkých výhod použití příkazu scaffolding je, že všechny soubory jsou vytvořeny pomocí správných jmenných konvencí, čímž se vyhnete podivným chybovým hlášením. Ušetří vám to také práci s ručním vytvářením těchto souborů.
Btw…
Považuje se za dobrou praxi mazat automaticky generované soubory, které neplánujete používat. Proto po použití generátoru jako „g controller“ zkontrolujte seznam vytvořených souborů &odstraňte ty, které nepotřebujete.
Shrnutí
Naučili jste se o scaffoldingu v Ruby, takže můžete rychle začít vytvářet novou aplikaci Rails a procvičovat ji.
Když se naučíte víc, možná budete chtít scaffolding opustit.
Ale stále můžete generovat jednotlivé kontroléry, modely nebo soubory pohledů, když je budete potřebovat.
Díky za přečtení! 🙂
Díky za přečtení!