Co je to Scaffolding v Ruby on Rails?

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 souboru config/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í!

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.