Jak vytvořit aplikaci Ruby on Rails v Ubuntu 22.04

Ruby on Rails je oblíbený framework pro tvorbu webových aplikací, který se vyznačuje svou uživatelskou přívětivostí, rychlým vývojem a elegantním kódem. V tomto návodu si krok za krokem ukážeme, jak na to, a vytvoříme si aplikaci Ruby on Rails na Ubuntu 22.04.

Úvod do problematiky

Ruby on Rails je open-source framework, jehož základem je programovací jazyk Ruby. Poskytuje soubor nástrojů a konvencí, které zjednodušují a urychlují vývoj webových aplikací. Architektura aplikací Ruby on Rails je založena na vzoru Model-View-Controller (MVC), jenž efektivně odděluje logiku aplikace, způsob její prezentace a datové struktury.

V tomto tutoriálu si vytvoříme jednoduchou aplikaci pro správu kontaktů pomocí Ruby on Rails. Projdeme si instalaci potřebného softwaru, vytvoříme základ aplikace, přidáme model, controller a pohled, a nakonec naši aplikaci spustíme.

Potřebné softwarové vybavení

Než se pustíme do samotného vývoje aplikace, musíme zajistit, aby Ubuntu 22.04 obsahovalo veškerý potřebný software.

1. Nainstalujte jazyk Ruby pomocí tohoto příkazu:
sudo apt install ruby-full

2. Následně nainstalujte Rails framework tímto příkazem:
sudo apt install rails

3. Dále je třeba nainstalovat databázový systém PostgreSQL, který budeme používat pro ukládání dat:
sudo apt install postgresql postgresql-contrib

Vytvoření projektu

Po úspěšné instalaci všeho potřebného můžeme přistoupit k vytvoření nového projektu Ruby on Rails.

1. Nejprve vytvořte nový adresář pro vaši aplikaci a přejděte do něj:
mkdir kontaktni_aplikace
cd kontaktni_aplikace

2. Nyní inicializujeme Rails aplikaci pomocí následujícího příkazu:
rails new .

3. Tento příkaz vytvoří základní strukturu adresářů a souborů nezbytných pro chod Rails aplikace.

Model dat

Model je zodpovědný za reprezentaci dat v aplikaci. V našem případě budeme mít model Kontakt, který bude sloužit pro ukládání informací o kontaktech.

1. Vytvořte migraci pro model Kontakt pomocí tohoto příkazu:
rails generate model Kontakt jmeno:string prijmeni:string email:string telefon:string

2. Tento příkaz vygeneruje migrační soubor a soubor modelu Kontakt.

3. Spusťte migraci pro vytvoření tabulky v databázi:
rails db:migrate

4. Tímto krokem se v databázi vytvoří tabulka kontaktů.

Řadič (Controller)

Controller se stará o zpracování uživatelských požadavků a odesílání odpovědí. Vytvoříme controller Kontakty, který bude spravovat operace s kontakty.

1. Vygenerujte controller Kontakty pomocí příkazu:
rails generate controller Kontakty index new create edit update destroy

2. Tento příkaz vytvoří soubory controlleru a pohledů pro akce index, new, create, edit, update a destroy.

Pohledy (Views)

Pohledy slouží k vykreslení obsahu pro uživatele. Vytvoříme pohledy pro jednotlivé akce controlleru Kontakty.

1. Upravte soubor app/views/kontakty/index.html.erb a přidejte tento kód:

<h2>Seznam kontaktů</h2>
<ul>
  <% @kontakty.each do |kontakt| %>
    <li><a href="<%= kontakt_path(kontakt) %>"><%= kontakt.jmeno + ' ' + kontakt.prijmeni %></a></li>
  <% end %>
</ul>

2. Tento kód zobrazí seznam všech kontaktů jako odkazy.

3. Upravte soubor app/views/kontakty/show.html.erb a přidejte tento kód:

<h2>Zobrazení kontaktu</h2>
<p>
  <strong>Jméno:</strong> <%= @kontakt.jmeno %> <%= @kontakt.prijmeni %><br>
  <strong>Email:</strong> <%= @kontakt.email %><br>
  <strong>Telefon:</strong> <%= @kontakt.telefon %><br>
</p>

<a href="<%= edit_kontakt_path(@kontakt) %>">Upravit kontakt</a> |
<a href="<%= kontakty_path %>">Zpět na seznam</a>

4. Tento kód zobrazí detailní informace o vybraném kontaktu.

5. Upravte soubor app/views/kontakty/new.html.erb a přidejte následující kód:

<h2>Nový kontakt</h2>
<% form_with(model: @kontakt) do |form| %>
  <p>
    <%= form.label :jmeno %> <%= form.text_field :jmeno %><br>
    <%= form.label :prijmeni %> <%= form.text_field :prijmeni %><br>
    <%= form.label :email %> <%= form.email_field :email %><br>
    <%= form.label :telefon %> <%= form.text_field :telefon %><br>
  </p>
  <p>
    <%= form.submit "Vytvořit" %>
  </p>
<% end %>

6. Tento kód vykreslí formulář pro přidání nového kontaktu.

Spuštění aplikace

Po vytvoření modelu, controlleru a pohledů můžeme naši aplikaci spustit.

1. Aplikaci spustíte příkazem:
rails s

2. Aplikace bude dostupná na adrese http://localhost:3000.

Závěrem

V tomto tutoriálu jsme si vytvořili základní aplikaci pro správu kontaktů pomocí Ruby on Rails. Prošli jsme si instalaci potřebného softwaru, vytvoření nového projektu, přidání modelu, controlleru a pohledů, a nakonec spuštění aplikace.

Ruby on Rails je silný nástroj, který usnadňuje a urychluje vývoj webových aplikací. Využijte jeho konvence a nástroje a vytvářejte robustní a škálovatelné webové aplikace s lehkostí.

Časté otázky

1. Co přesně je Ruby on Rails?
Ruby on Rails je open-source framework pro vývoj webových aplikací, který vývojářům poskytuje nástroje a konvence pro zjednodušení celého procesu.

2. Jaké jsou hlavní výhody používání Ruby on Rails?
Ruby on Rails je oblíbený díky své jednoduchosti, vysoké produktivitě, elegantní syntaxi a implementaci architektonického vzoru MVC.

3. Jak nainstalovat Ruby on Rails v Ubuntu 22.04?
Ruby nainstalujete pomocí příkazu sudo apt install ruby-full a framework Rails nainstalujete příkazem sudo apt install rails.

4. Jak vytvořím nový model v Ruby on Rails?
Modely se vytvářejí pomocí příkazu rails generate model, například rails generate model Kontakt jmeno:string prijmeni:string email:string telefon:string.

5. Jak generuji nový controller v Ruby on Rails?
Controllery generujeme příkazem rails generate controller, například rails generate controller Kontakty index new create edit update destroy.

6. Jaké jsou základní akce v controlleru v Rails?
Mezi základní akce controlleru patří index, show, new, create, edit, update a destroy.

7. Jak spustit aplikaci Ruby on Rails?
Aplikaci spustíte příkazem rails s, což ji zpřístupní na adrese http://localhost:3000.

8. Existuje nějaká oficiální dokumentace k Ruby on Rails?
Kompletní dokumentaci k Ruby on Rails naleznete na oficiálních stránkách: https://rubyonrails.org/