Ruby on rails. Instalowanie Ruby on Rail framework i zapoznanie się z podstawami

Podobne dokumenty
Ruby on rails. Wybór środowiska programistycznego lub Instalowanie Ruby on Rail framework i zapoznanie się z podstawami funkcjonowania i używania.

Laboratorium nr 3 Podstawy Ruby on Rails

Kurs języka Ruby. Ruby on Rails ActionPack

Materiały oryginalne: ZAWWW-2st1.2-l11.tresc-1.0kolor.pdf. Materiały poprawione

Backend Administratora

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Rys. 1. Widok uruchomienia polecenia apt-get install build-essential. Rys. 2. Widok uruchomienia polecenia apt-get install apache2

Laboratorium 7 Blog: dodawanie i edycja wpisów

Programowanie w Ruby

Ruby on Rails. Supersilnik WWW. Łukasz Włodarczyk

Laboratorium - Poznawanie FTP

Laboratorium 1 Wprowadzenie do PHP

Xopero Backup Build your private cloud backup environment. Rozpoczęcie pracy

DESlock+ szybki start

Programowanie w Ruby

Windows Server 2008 Standard Str. 1 Ćwiczenia. Opr. JK. I. Instalowanie serwera FTP w Windows Server 2008 (zrzuty ekranowe z maszyny wirtualnej)

Ruby i Ruby on Rails. Mateusz Drożdżyński

Korzystanie z edytora zasad grupy do zarządzania zasadami komputera lokalnego w systemie Windows XP

Symfonia Produkcja Instrukcja instalacji. Wersja 2013

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Zaawansowane aplikacje internetowe - laboratorium

Podstawy technologii WWW

Instrukcja instalacji

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym PrestaShop (plugin dostępny w wersji ecommerce)

Użytkowanie PortableGit w systemie Windows. 1. Najważniejsze informacje

Przewodnik zdalnej instalacji

Bazy danych i strony WWW

Platforma e-learningowa

Programowanie w Ruby

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

IBM SPSS Statistics Wersja 22. Linux - Instrukcja instalacji (licencja autoryzowanego użytkownika)

Dokonaj instalacji IIS opublikuj stronę internetową z pierwszych zajęć. Ukaże się kreator konfigurowania serwera i klikamy przycisk Dalej-->.

4. Podstawowa konfiguracja

Podręcznik użytkownika Konfiguracja Rejestracji Online

Finanse VULCAN. Jednostki dodaje i konfiguruje administrator główny platformy (w aplikacji Zarządzanie platformą).

Dokumentacja fillup - MS SQL

Instrukcja instalacji oprogramowania dla środowiska MacOS

MAMP: Można to pobrać i zainstalować z XAMPP: Można go pobrać i zainstalować z

I. Informacje ogólne. Jednym z takich systemów jest Mambo.

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Aplikacje internetowe - laboratorium

Git, Bitbucket, IntelliJ IDEA

OBSŁUGA I KONFIGURACJA SIECI W WINDOWS

Instrukcja konfiguracji funkcji skanowania

Moduł Media backup oraz konfiguracja serwera zapasowego

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

KOMPUTEROWY SYSTEM WSPOMAGANIA OBSŁUGI JEDNOSTEK SŁUŻBY ZDROWIA KS-SOMED

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce)

Marketing Automation:

Problemy techniczne SQL Server

Przewodnik instalacji i rozpoczynania pracy. Dla DataPage+ 2013

Books. by HansaWorld. Przewodnik instalacji. wersji 6.2

MeetingHelper. Aplikacja Android ułatwiająca przekazywanie materiałów pomiędzy uczestnikami spotkania. Instrukcja obsługi dla programisty

REFERAT O PRACY DYPLOMOWEJ

Problemy techniczne SQL Server

Ćwiczenie 2. Tworzenie serwisów internetowych. Zapoznanie z pakietem WebRatio

2. Podstawy narzędzia Application Builder, budowa strony, kreatory aplikacji

Laboratorium A: Zarządzanie ustawieniami zabezpieczeń/klucz do odpowiedzi

Sieci i systemy operacyjne I Ćwiczenie 1. Podstawowe polecenia systemu Unix

Płatny dostęp do treści przez system płatności PayU na WordPressie [TUTORIAL]

Z pojedynczym obiekcie zasady grupy znajdziemy dwa główne typy ustawień:

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Przewodnik użytkownika (instrukcja) AutoMagicTest

Aplikacje WWW - laboratorium

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Budowa aplikacji wielowarstwowych zastosowanie szablonów. Laboratorium 2 Programowanie komponentowe Zofia Kruczkiewicz

MasterEdytor. Podprogram pomocniczy do programu mpfotoalbum 1.2 INSTRUKCJA

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Instrukcja użytkownika

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Integracja z Facebook. Wersja 7.2.4

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Programowanie obiektowe

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

System operacyjny UNIX Ćwiczenie 1. Podstawowe polecenia systemu Unix

Internetowy serwis Era mail Aplikacja sieci Web

Pracownia internetowa w szkole ZASTOSOWANIA

oprogramowania F-Secure

Serwer SAMBA UDOSTĘPNIANIE UDZIAŁÓW SIECIOWYCH PIOTR KANIA

SSI Web 8. (badania.kozminski.edu.pl) Instrukcja logowania i uruchamiania ankiety

2. Podstawy narzędzia Application Builder, budowa strony, kreatory aplikacji

Instalacja i konfiguracja serwera IIS z FTP

Fiery Remote Scan. Uruchamianie programu Fiery Remote Scan. Skrzynki pocztowe

INSTRUKCJA obsługi certyfikatów

emszmal 3: Automatyczne księgowanie przelewów w programie EasyUploader (plugin dostępny w wersji ecommerce)

Instrukcja instalacji środowiska testowego na TestingCup wersja 1.0

Pliki zorganizowano w strukturze drzewiastej odzwierciedlając strukturę logiczną aplikacji:

System Symfonia e-dokumenty

LeftHand Sp. z o. o.

Baza danych i ORM mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner

Technologie informacyjne lab. 4

Architektura komunikacji

Graficzny terminal sieciowy ABA-X3. część druga. Podstawowa konfiguracja terminala

Fiery Remote Scan. Łączenie z serwerami Fiery servers. Łączenie z serwerem Fiery server przy pierwszym użyciu

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Instrukcja użytkownika

Transkrypt:

Ruby on rails 1 Cel laboratoriów Instalowanie Ruby on Rail framework i zapoznanie się z podstawami 2 RoR Ruby on Rails to framework do tworzenia dynamicznych stron internetowych napisany w języku programowania Ruby. Od debiutu w 2004 roku, Ruby on Rails szybko stał się jednym popularny. RoR jest wykorzystywany przez firmy takie jak Airbnb, Basecamp, Disney, GitHub, Hulu, Kickstarter, Shopify, Twitter i Yellow Pages. Zalety Ruby on Rails 1. jest w 100% open-source, dostępne w ramach licencji MIT, w rezultacie nic nie kosztuje, można pobrać i używać 2. sukces zawdzięcza eleganckiej i kompaktowej konstrukcji; 3. poprzez wykorzystanie plastyczności języka Ruby, Rails jest skuteczne i wygodne; wiele zadań, takich jak generowanie kodu HTML, tworzenie modeli danych, routing URL są łatwe, a kod aplikacji jest zwięzły i czytelny 4. rapid prototyping 5. generowanie kodu dla programisty (mało kodu do pisania) 6. mało SQLa wykorzystanie mapowania w języku Ruby 7. modularny 8. SQLite jako domyślna baza danych (nie wymaga serwera, bez konfiguracji, transakcyjna, relacyjna baza danych). Nie trzeba konfigurować bazy danych, by zacząć kodować. RoR pracuje wg wzorca nazwanego Model-View-Controller, gdzie: 1. Model reprezentuje dane z którymi pracuje aplikacja 2. View visual reprezentacja danych 1

Rysunek 1: Schemat prezentujący architekturę MVC (źródło: Ruby on Rails Tutorial 3rd edt.) 3. Controller zapewnia interakcję pomiędzy modelem i wizualizacją Podczas interakcji z aplikacją Rails, przeglądarka wysyła żądanie, które jest odbierany przez serwer WWW i przekazywane do kontrolera Rails, który jest odpowiedzialny za to, co dalej robić. W niektórych przypadkach, kontroler natychmiast wygeneruje widok, który jest szablonem i który zostanie przekonwertowany do formatu HTML i wysłał z powrotem do przeglądarki. Dla dynamicznych stron, sterownik współpracuje z modelem, który jest obiektem Ruby, który stanowi element strony (taki jak użytkownik) i jest odpowiedzialny za komunikację z bazą danych. Po wywołaniu modelu, kontroler reruje widok i zwraca pełną stronę WWW do przeglądarki jako HTML. 3 Wybór środowiska Możliwe jest tworzenie aplikacji lokalnie (instalacja Ruby) lub w chmurze np. Cloud9. 3.1 Instalacja Najlepiej posłużyć się instrukcją ze strony http://installrails.com. Instalacja z użyciem gems: gem install rails -v 4.2.2 2

3.2 Cloud9 Oto kroki do rozpoczęcia pracy ze środowiskiem cloud: 1. Zarejestruj się na darmowe konto na Cloud9 2. Kliknij na "Go to your Dashboard" 3. Wybierz opcję Ćreate New Workspace" 4. Jak pokazano na rysunku, utworzyć obszar roboczy o nazwie żails-tutorial"(nie żails_- tutorial"), ustaw ją na "Private to the people I invite"i wybierz ikonę Rails Tutorial (nie ikonę dla Ruby on Rails ) 5. Kliknij przycisk "Utwórz" 6. Po zakończeniu tworzenia obszaru roboczego, zaznacz go i kliknij Śtart editing" Rysunek 2: Okno tworzenia obszaru roboczego w Claud9 (źródło: Ruby on Rails Tutorial 3rd edt.) 4 Pierwszy program - Hello world 4.1 Tworzenie aplikacji Praktycznie wszystkie aplikacje Rails rozpoczyna się w ten sam sposób, poleceniem rails new. 3

Tablica 1: Zawartość aplikacji RoR File/Directory app/ app/assets bin/ config/ db/ doc/ lib/ lib/assets log/ public/ bin/rails test/ tmp/ vor/ vor/assets README.rdoc Rakefile Gemfile Gemfile.lock config.ru.gitignore przeznaczenie Główny kod aplikacji włączając model, views i controllers oraz pomoc zasoby aplikacji, takie jak kaskadowe arkusze stylów (CSS), pliki Java- Script i obrazy pliki wykonywalne konfiguracja aplikacji, np. jaka db pliki bazy danych dokumentacja do aplikacji moduły bibliotek zasoby biblioteczne takie jak kaskadowe arkusze stylów (CSS), pliki JavaScript i obrazy pliki z logami Dane udostępniane publicznie (na przykład za pośrednictwem przeglądarek internetowych), takie jak strony błędów (statyczne elementy strony) Program do generowania kodu, otwierając sesję konsoli, lub uruchomieniem serwera lokalnego testy aplikacji pliki tymczasowe Kody innych firm, takich jak wtyczki i gems Zasoby niezbędna dla vor krótki opis aplikacji Zadania użytkowe dostępne poprzez polecenie rake wymagane gems dla aplikacji Lista gems wykorzystywych w celu zapewnienia, że wszystkie kopie aplikacji wykorzystują te same wersje gem Plik konfiguracyjny dla RACK a Ruby Webserver Interface wzorce do pominięcia przez Git $ cd # Change to the home directory. $ mkdir workspace # Make a workspace directory. $ cd workspace # Change into the workspace directory. $ rails new hello_app Polecenie tworzy szkielet aplikacji Rails. Układ jest standardowy, co ułatwia pracę. Układ pokazany w Tabeli 1. Po utworzeniu nowej aplikacji Rails, następnym krokiem jest użycie Bundler by zainstalować gems potrzebne do aplikacji. Bundler uruchamia się automatycznie. Można jednak dodać ręcznie inne gems i ponownie uruchomić dodawania bibliotek. Otwórz w edytorze Gemfile 4

przyjrzyj się zawartości i zadbaj, by zawierał kod: source https://rubygems.org gem rails, 4.2.2 gem sass-rails, 5.0.2 gem uglifier, 2.5.3 gem coffee-rails, 4.1.0 gem jquery-rails, 4.0.3 gem turbolinks, 2.3.0 gem jbuilder, 2.2.3 gem sdoc, 0.4.0, group: :doc group :development, :test do gem sqlite3, 1.3.9 gem byebug, 3.4.0 gem web-console, 2.0.0.beta3 gem spring, 1.1.3 group :production do gem pg, 0.17.1 gem rails_12factor, 0.0.2 Następnie zainstaluj zmiany: $ cd hello_app/ $ bundle install 4.2 Uruchamianie aplikacji Aby uruchomić aplikację wystarczy użyć wbudowanego serwera www. Urchamia go polecenie rails server lub rails s. $ cd ~/workspace/hello_app/ $ rails server => Booting WEBrick => Rails application starting on http://localhost:3000 => Run rails server -h for more startup options => Ctrl-C to shutdown server Od tej pory ten terminal jest zajęty poprzez działający serwer. Do dalszej pracy potrzebny będzie kolejny terminal. Na serwerze lokalnym, należy wpisać w przeglądarce adres http://localhost:3000. Aby zobaczyć informacje na temat pierwszej aplikacji, kliknij na link About your application s environment. 5

4.3 Hello, world! W pierwszym zastosowaniu MVC, zrobimy maleńkie zmiany, dodając akcję kontrolera do rerowania napisu "Hello, World!". Jak wskazuje ich nazwa, działania kontrolera są zdefiniowane wewnątrz kontrolerów. $ ls app/controllers/*_controller.rb Otwórz w edytorze plik application_controller.rb i dopisz do niego: class ApplicationController < ActionController::Base # Prevent CSRF attacks by raising an exception. # For APIs, you may want to use :null_session instead. protect_from_forgery with: :exception def hello rer text: "hello, world!" Po zdefiniowaniu działania, które zwraca żądany ciąg, musimy powiedzieć Rails do korzystania z tego działania, zamiast domyślnej strony. Aby to zrobić, będziemy edytować router, który znajduje się przed kontrolerem i decyduje, gdzie wysłać zapytania, które przychodzą z przeglądarki. Chcemy zmienić domyślną stronę, root route, która określa stronę wyświetlaną z głównego adresu. Należy otworzyć plik config/routes.rb zawierający zakomentowane linijki. Tutaj "welcome"to nazwa kontrolera a "index"jest działaniem w ramach tego kontrolera. Aby aktywować root route, usuń znak komentarza, a następnie zastąp go kodem: # You can have the root of your site routed with "root" root application#hello Odśwież przeglądarkę. 4.4 Hello, world! statycznie Utwórz w katalogu public plik index.html. Ten folder jest zawsze przeszukiwany jako pierwszy przed przejściem do obsługi stron dynamicznych. Do pliku wpisz: <!DOCTYPE html> <html> <head><title>totally Static</title></head> <body><h2>will never generate dynamic content :(</h2></body> </html> 6

5 Wdrożenie Nawet na tak wczesnym etapie, mamy już zamiar wdrożyć prawie pustą aplikację Rails. W chwili obecnej jest wiele możliwości, hostów lub serwerów wirtualnych. Wykorzystamy Heroku, który jest platformą hostingową zbudowaną specjalnie do wdrażania Rails i innych aplikacji internetowych. Heroku ułatwia wdrażanie aplikacji Rails jeżeli Twój kod źródłowy jest pod kontrolą wersji z Git. Darmowy Heroku jest więcej niż wystarczające na potrzeby testowania aplikacji. Następnie trzeba utworzyć i skonfigurować nowe konto Heroku. Pierwszym krokiem jest zarejestrowanie się na Heroku. Następnie sprawdzenie, czy system ma już zainstalowanego klienta wiersza polecenia Heroku: $ heroku version Jeżeli nie, to ze strony swojego konta przejdź do instrukcji konfiguracji i zostanie Ci przedstawiona ścieżka pobrania Heroku Toolbelt. Następnie należy się zalogować hosta i podać swój klucz SSH: $ heroku login $ heroku keys:add Logowanie jest niezbędne, by móc skojarzyć pracę Git i Heroku. Następnie wykonaj polecenie: $ heroku create by utworzyć na serwerze miejsce, w którym będzie przechowywana aplikacja. Koma Heroku tworzy nową subdomenę tylko dla naszej aplikacji, dostępną do natychmiastowego oglądania. Nie ma tam jeszcze nic. Aby zainstalować aplikację, pierwszym krokiem jest użycie Git push do głównej gałęzi Heroku: $ git push heroku master Aby obejrzeć wynik: aplikację wystawioną na zewnątrz uruchom: $ heroku open 6 Zadania 1. Zmień treść strony, aby wyświetlić Witaj świecie! zamiast Hello World!. 2. Dodać drugą akcję o nazwie goodbye, która reruje tekst Do zobaczenia!. Edytuj plik root route, tak że trafia do goodbye zamiast do hello. 7

7 Więcej o kontrolerach Kontroler zawiera akcje (metody w Ruby) i przetwarza zapytania z przeglądarki. Kontroler może być wygenerowany w sposób bardzo szybki wraz z odpowiadającym mu view rails generate controller controller_name [action1 action2]. Wykonaj: $ rails generate controller greeter hello Sprawdź zawartość katalogu controllers i zawartość nowego pliku oraz zawartość katalogu views. Wyświetl zawartość strony: http://localhost:3000/greeter/hello. Pliki w views wyglądają jak HTML, ale mają rozszerzenie erb. Jest to osadzony html w Ruby. Aby w tym pliku wykonać kod Ruby należy zapisać <% ruby code %> lub <%= ruby code %>. Dodaj do view hello.html.erb zapis: <% random_names = ["Alex", "Joe", "Michael"] %> <h1>hej, <%= random_names.sample %></h1> <p>teraz jest: <%=Time.now%> </p> 8 Routes Zapytania przeglądarki muszą zostać przekierowane (routed) do kontrolera. A wykonuje to element Route. Analizuje zapytanie i przekierowuje do odpowiedniego kontrolera. Ścieżka do hello action zostało wygenerowana automatycznie (config/routes.rb) przy automatycznym generowaniu kontrolera. Zadanie poniższe pokazuje jak samodzielnie dodać akcję wewnątrz kontrolera i obsłużyć go, tak by został wyświetlony w przeglądarce. 1. Dodaj w pliku greeter_controller.rb nową metodę goodbye. 2. W podkatalogu /viewes/greeter/ dodaj nowy plik goodbye.html.erb. Dodaj kod wyświetlający pożegnanie dla losowo wygenerowanych imion z tablicy imion. 3. Wyedytuj plik config/routes.rb i dodaj: get greeter/goodbye 4. Aby przetestować ścieżki w danej web aplikacji wpisz w terminalu, gdy bieżącym katalogiem jest katalog aplikacji np. hello_app : $ rake routes 8

9 Kilka ciekawostek Jeżeli metoda w kontrolerze jest pusta i ma niepowtarzalną nazwę to można taką metodę usunąć z kontrolera np. zmień zawartość kontrolera greeter_controller.rb class GreeterController < ApplicationController def hello #def goodbye # Po tej operacji nadal strony działają jak poprzednio. Zasadą w Rails jest przeniesienie jak największej możliwej porcji kodu dynamicznego do kontrolera, by odciążyć views. Wpisz do pliku greeter_controller.rb: def hello random_names = ["Ala", "Ola", "Iza"] @name = random_names.sample @time = Time.now @times_displayed = 0 @times_displayed += 1 Wszystkie zmienne instancji będą widoczne w obrębie view dla metody hello. Wpisz w pliku hello.html.erb: <h1>hej, <%= @name %></h1> <p>jest teraz godzina <%= @time %> </p> <p>ta strona była odwiedzona <%= @times_displayed %> razy</p> Sprawdź działanie strony. Zmienna times_displayed jest inicjowana za każdym razem, gdy przeglądarka wyśle zapytanie. Takie dane mogą być przechowywane w środowisku sesji lub bazie danych. 10 Helpers Helpers to rodzaj makro, narzędzie do formatowania Views czyli interfejsu. Zmienna time wyświetla czas w niesformatowanej formie. Wartość czas jest dostępna przez zmienną @time. Zadanie takie realizuje się w elemencie helper. Wszystko co jest zdefiniowane w helper jest widoczne dla wszystkich views nie tylko greeter views. Otwórz plik greeter_helper.rb i dopisz: def formatted_time(time) time.strftime("%i:%m%p") # time string in AM/PM format 9

Następnie w odpowiednim pliku views wywołaj funkcję formatted_time(@time) zamiast @time. Sprawdź zmiany. Do dyspozycji jest bardzo użyteczny wbudowany helper link_to. Użycie: link_to name path Jest to generator linku (znacznik a w html), który wyświetla na stronie name i przekierowuje do path. Path może być wyrażeniem lub ścieżką z pliku routes.rb kończący się _url (pałna ścieżka) lub _path (ścieżka względna). Można zamiast ścieżki wykorzystać zmienną, której zmiana wartości zmieni przekierowanie bez zbytecznych dużych zmian w kodzie! Dodaj w pliku hello.html.erb kod: <p><%= link_to "Google", "http://www.google.com" %></p> <p><%= link_to "Goodbye", greeter_goodbye_path %></p> greeter_goodbye, to prefix. Można go odczytać listy rake routes. 11 Literatura obowiązkowa 1. https://www.railstutorial.org 2. http://mislav.uniqpath.com/poignant-guide/book/ 10