Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00050 006813 12235304 na godz. na dobę w sumie
Ruby on Rails. Tworzenie aplikacji WWW - książka
Ruby on Rails. Tworzenie aplikacji WWW - książka
Autor: Liczba stron: 160
Wydawca: Helion Język publikacji: polski
ISBN: 978-83-283-1843-4 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> programowanie >> ruby - programowanie
Porównaj ceny (książka, ebook (-25%), audiobook).
Ruby on Rails jest otwartą platformą programistyczną umożliwiającą pisanie stron WWW prosto, wydajnie i... bardzo przyjemnie. Ruby on Rails wykorzystuje architekturę MVC (model – widok – kontroler), co skraca okres żmudnego kodowania. Dzięki temu programista może skupić się na pracy twórczej. Narzędzie to wykorzystuje się na potrzeby takich serwisów jak Groupon, Indiegogo, Airbnb, Yammer, SoundCloud, Scribd, Shopify, Hulu i wielu innych. Krążą opinie, że praca z Ruby on Rails jest pasmem frustracji — nic bardziej mylnego! Z tą książką sprawnie przygotujesz sobie wygodne środowisko do pracy, niezależnie od tego, z jakiego systemu operacyjnego korzystasz na co dzień.

Dowiesz się, jak projektować i tworzyć rozbudowane serwisy internetowe, a Twoja nauka polegać będzie na tworzeniu rzeczywistej, działającej aplikacji! Nawet jeśli dopiero piszesz pierwsze linie kodu, wkrótce zaczniesz tworzyć rozbudowane projekty. Autor przystępnie i interesująco wyjaśnia wszystkie kwestie, które trzeba znać, aby tworzyć nowoczesne aplikacje — od tych najbardziej podstawowych aż po oparte na zaawansowanych ideach, takich jak korzystanie z gemów czy modelu MVC.

W książce tej autor przedstawił między innymi następujące zagadnienia:

Ruby on Rails — prosty, wydajny, ciekawy!


John Elder mieszka w Chicago. Ten programista weteran ze znanego serwisu Codemy.com zajmuje się programowaniem od siódmego roku życia. Zbudował jedną z pierwszych internetowych sieci reklamowych. Rozwijał program Submission-Spider — jedno z pierwszych narzędzi do optymalizacji wyszukiwarek internetowych, znane milionom użytkowników w dwudziestu kilku krajach. Dzisiaj Elder jest uznanym autorytetem w dziedzinie aplikacji internetowych i programowania, jest też znawcą tematyki ataków sieciowych i reklam w internecie. Ma przy tym cenną umiejętność przekazywania wiedzy w sposób przystępny, interesujący i zrozumiały.
Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

Tytuł oryginału: Learn Ruby On Rails For Web Development: Learn Rails The Fast And Easy Way! Tłumaczenie: Andrzej Watrak ISBN: 978-83-283-1843-4 Copyright © John Elder and Codemy.com. Polish edition copyright © 2016 by Helion S.A. All rights reserved. All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from the Publisher. Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji. Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce. Wydawnictwo HELION ul. Kościuszki 1c, 44-100 GLIWICE tel. 32 231 22 19, 32 230 98 63 e-mail: helion@helion.pl WWW: http://helion.pl (księgarnia internetowa, katalog książek) Drogi Czytelniku! Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie/rrtwww Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję. Printed in Poland. • Kup książkę • Poleć książkę • Oceń książkę • Księgarnia internetowa • Lubię to! » Nasza społeczność SPIS TRE(cid:165)CI O AUTORZE ............................................................................................................................. 7 WPROWADZENIE .................................................................................................................. 9 Czym właściwie jest platforma Ruby on Rails? ........................................................................... 10 Dla kogo jest ta książka? ................................................................................................................ 10 Czy trzeba nauczyć się języka Ruby? ............................................................................................ 10 Co będziemy robić w tej książce? .................................................................................................. 11 Jak wygląda nauka? ......................................................................................................................... 11 Konwencje stosowane w tej książce ............................................................................................. 11 Rozdział 1. ŚRODOWISKO PROGRAMISTYCZNE ............................................................................... 15 Z jakiej wersji Rails i Ruby korzystasz? ........................................................................................ 19 Popularne polecenia terminalowe ................................................................................................ 20 Utworzenie pierwszego projektu Rails ........................................................................................ 21 Uruchomienie aplikacji .................................................................................................................. 22 Architektura MVC .......................................................................................................................... 23 Pliki gemów ..................................................................................................................................... 25 Dodawanie stron do aplikacji WWW .......................................................................................... 27 Przekierowanie strony .................................................................................................................... 30 Kontrola wersji w systemach GitHub i Bitbucket ...................................................................... 32 Instalacja programu Git ...........................................................................................................33 Przywracanie kodu ...................................................................................................................35 GitHub czy Bitbucket? .............................................................................................................35 System Bitbucket .......................................................................................................................35 System GitHub ..........................................................................................................................38 Poleć książkęKup książkę RUBY ON RAILS. TWORZENIE APLIKACJI WWW Udostępnianie aplikacji za pomocą usługi Heroku ....................................................................40 Wysyłanie kodu do usługi Heroku .........................................................................................42 Następny krok — uzyskiwanie pomocy .......................................................................................44 Rozdział 2. TWORZENIE PROSTEJ APLIKACJI .................................................................................... 47 Dodawanie nowych stron do aplikacji .........................................................................................47 Dodanie nowej strony do kontrolera ...........................................................................................49 Ustawienie ścieżki do nowej strony ..............................................................................................50 Tworzenie odnośników do stron ..................................................................................................51 Z tworzeniem odnośników na każdej stronie jest za dużo roboty ...........................................54 Tworzenie plików częściowych .....................................................................................................54 Pliki layouts/application.html.erb ................................................................................................55 Rozdział 3. DODAWANIE KOMPONENTÓW BOOTSTRAP ............................................................... 59 Instalacja platformy Bootstrap ......................................................................................................60 Zabawa z platformą Bootstrap ......................................................................................................64 Utworzenie paska nawigacyjnego .................................................................................................68 Dostosowanie platformy Bootstrap ..............................................................................................70 Rozdział 4. OBSŁUGA UŻYTKOWNIKÓW ZA POMOCĄ GEMA DEVISE ........................................ 75 Krok pierwszy ............................................................................................................................78 Krok trzeci .................................................................................................................................78 Krok piąty ..................................................................................................................................80 Obsługa bazy danych w platformie Rails .....................................................................................81 Baza programistyczna i baza produkcyjna ..................................................................................83 Wysyłanie migracji do bazy PostgreSQL w usłudze Heroku ....................................................84 Sprawdzenie nowych stron gema Devise .....................................................................................85 Zmiana wyglądu stron gema Devise .............................................................................................87 Tworzenie odnośników na stronach gema Devise .....................................................................91 Sprawdzenie, czy użytkownik jest zalogowany ...........................................................................92 Zmiana paska nawigacyjnego ........................................................................................................93 Rozdział 5. TWORZENIE SZKIELETU APLIKACJI ............................................................................... 95 Sprawdzenie widoków szkieletu ....................................................................................................97 To jest CRUD! .................................................................................................................................99 Widoki i kontroler szkieletu ........................................................................................................100 4 Poleć książkęKup książkę SPIS TRE(cid:165)CI Tabela utworzona w bazie danych ..............................................................................................102 Sprawdzenie strony z listą pinów ...............................................................................................104 Zmiana paska nawigacyjnego ......................................................................................................105 Rozdział 6. UWIERZYTELNIANIE UŻYTKOWNIKÓW ..................................................................... 107 Powiązania w platformie Rails ....................................................................................................107 Stosowanie powiązań ...................................................................................................................108 Tworzenie powiązań .....................................................................................................................109 Aby utworzyć pin, trzeba się zalogować ....................................................................................110 Podsumowanie ..............................................................................................................................115 Rozdział 7. ŁADOWANIE OBRAZÓW ZA POMOCĄ GEMA PAPERCLIP ....................................... 117 Instalacja narzędzia ImageMagick .............................................................................................118 Instalacja gema paperclip .............................................................................................................119 Zmiana strony umożliwiająca ładowanie obrazów ..................................................................120 Zapisywanie obrazów w usłudze Amazon S3 ...........................................................................124 Uzyskiwanie identyfikatora klucza dostępu i klucza poufnego w usłudze Amazon ...........128 Rozdział 8. STYLIZACJA WITRYNY ZA POMOCĄ JQUERY MASONRY I PAGINACJI STRON ... 131 Ulepszenie strony wyświetlającej pin .........................................................................................138 Przystosowanie strony do urządzeń mobilnych .......................................................................139 Zmiana kolejności pinów .............................................................................................................141 Dodanie paginacji stron ...............................................................................................................142 Ustawienie listy pinów jako strony głównej ..............................................................................145 Dodanie nazwy użytkownika ......................................................................................................146 Rozdział 9. UPIĘKSZANIE WITRYNY I ZAKOŃCZENIE PROJEKTU .............................................. 151 Definiowanie własnego adresu URL ..........................................................................................153 Poddomeny ....................................................................................................................................153 Tworzenie własnej domeny .........................................................................................................154 Rozdział 10. PODSUMOWANIE .............................................................................................................. 155 SKOROWIDZ ....................................................................................................................... 157 5 Poleć książkęKup książkę RUBY ON RAILS. TWORZENIE APLIKACJI WWW 6 Poleć książkęKup książkę Rozdzia(cid:239) 4. OBS(cid:146)UGA U(cid:191)YTKOWNIKÓW ZA POMOC(cid:107) GEMA DEVISE Twoja aplikacja się rozwija! Teraz, gdy poznałeś komponenty Bootstrap, możesz zacząć upiększać witrynę. Ale tak naprawdę… to aplikacja wciąż nic nie robi. Czas to zmienić. Jedną z kluczowych funkcjonalności aplikacji będzie możliwość tworzenia kont przez użytkowników, logowania, wylogowywania się i zmieniania profili. Nie chcesz przecież, aby „piny” na Twojej stronie umieszczał przypadkowy użytkownik. W tym celu musi najpierw założyć konto i się zalogować. Kiedyś napisanie kodu realizującego tę funkcjonalność przyprawiało o ból głowy i zabie- rało mnóstwo czasu. W dużej mierze wymagało to zaimplementowania obsługi baz danych, czego nienawidzę! Na szczęście teraz jest Ruby on Rails, a do tego gem, który wykona za Ciebie całą mrówczą robotę. Gem nazywa się Devise. Jest to gem do uwierzytelniania użytkownika. Za jego pomocą można łatwo rejestrować użytkowników, umożliwiać im logowanie i wylogowywanie ze strony, jak również modyfi- kowanie swoich profili. Za pomocą tego gema tworzy się również formularze niezbędne do wykonania powyższych operacji, a dodatkowo realizuje całą skomplikowaną obsługę bazy danych. Wystarczy jedynie zainstalować i skonfigurować gem i wszystko będzie od razu działać. Poleć książkęKup książkę RUBY ON RAILS. TWORZENIE APLIKACJI WWW Otwórz stronę RubyGems.org i wyszukaj gem Devise. W chwili powstawania tej książki zo- stał on już pobrany i zainstalowany ponad 12 milionów razy. Jak widać, jest to popularny komponent (jakżeby mogło być inaczej — spróbuj wyobrazić sobie stronę WWW, która nie wymagałaby logowania i wylogowywania użytkowników!). W chwili pisania tej książki dostępna była wersja 3.5.2 gema, którą należy dodać do pliku Gemfile w następujący sposób: /Gemfile 1 source https://rubygems.org 2 gem rails , 4.2.1 3 gem sass-rails , ~ 5.0 4 gem uglifier , = 1.3.0 5 gem coffee-rails , ~ 4.1.0 6 gem jquery-rails 7 gem turbolinks 8 gem jbuilder , ~ 2.0 9 gem sdoc , ~ 0.4.0 , group: :doc 10 gem bootstrap-sass , ~ 3.3.5.1 11 gem devise , ~ 3.5.2 12 13 group :development, :test do 14 gem byebug 15 gem web-console , ~ 2.0 16 gem spring 17 end 18 19 group :development, :test do 20 gem sqlite3 21 end 22 23 group :production do 24 gem pg , 0.18.2 25 gem rails_12factor , 0.0.3 26 end Jak zawsze, po dodaniu nowego gema do pliku Gemfile trzeba użyć polecenia bundle install: 1 $ bundle install 2 Oczywiście gem Devise wykonuje mnóstwo roboty, więc nie bądź zaskoczony, że jego in- stalacja i konfiguracja składa się z większej liczby kroków niż w przypadku innych gemów. Opisane są one w dokumentacji na stronie RubyGems.org, ale przeprowadzę Cię teraz przez wszystkie etapy. 76 Poleć książkęKup książkę ROZDZIA(cid:146) 4. OBS(cid:146)UGA U(cid:191)YTKOWNIKÓW ZA POMOC(cid:107) GEMA DEVISE Najpierw musisz uruchomić generator: 1 $ rails generate devise:install 2 W oknie terminala pojawi się sporo tekstu. Jeżeli się mu przyjrzysz, zauważysz, że zawiera opis pięciu kroków, które musisz wykonać, aby zainstalować gem Devise. Nie obawiaj się, nie jest tak źle. Zrobimy to teraz. Poniżej znajdują się instrukcje wzięte wprost z tekstu wyświetlonego w terminalu: 1. Sprawdź, czy zdefiniowałeś domyślne opcje adresu URL w plikach konfiguracyjnych. Poniżej przedstawiona jest przykładowa opcja środowiska programistycznego default_url_options w pliku config/environments/development.rb: config.action_mailer.default_url_options = { host: localhost , port: 3000 } W środowisku produkcyjnym opcja host: musi wskazywać serwer Twojej aplikacji. 2. Sprawdź, czy w pliku config/routes.rb ustawiony jest adres URL strony głównej, na przykład: root to: home#index . 3. Sprawdź, czy w pliku app/views/layouts/application.html.erb zdefiniowane są komunikaty flash, na przykład: p class= notice = notice /p p class= alert = alert /p 4. Jeżeli udostępniasz aplikację w usłudze Heroku tylko z wersją Rails 3.2, musisz ustawić opcję: config.assets.initialize_on_precompile = false 5. Skopiuj widoki gema Devise do swojej aplikacji (w celu ich dostosowania) za pomocą polecenia: rails g devise:views Przyjrzyj się powyższym krokom. Od razu możesz pominąć krok czwarty, ponieważ nie korzystasz z wersji Rails 3.2, tylko z 4.2.1 lub nowszej. Możesz również pominąć krok drugi, ponieważ zdefiniowałeś już główną stronę index. Pozostały więc kroki 1., 3. i 5. Wykonaj je teraz. 77 Poleć książkęKup książkę RUBY ON RAILS. TWORZENIE APLIKACJI WWW KROK PIERWSZY Przyjrzyj się krokowi pierwszemu. Musisz w dwóch plikach dodać po jednym wierszu kodu. /config/environments/development.rb: 1 . 2 . 3 config.action_mailer.default_url_options = { host: localhost , port: 3000 } 4 end 5 Wpisz po prostu wiersz numer 3 na końcu wskazanego pliku (powyżej końcowego wiersza end, który jest tu pokazany). Następnie podobną zmianę wprowadź w innym pliku: /config/environments/production.rb: 1 . 2 . 3 config.action_mailer.default_url_options = { host: obrazkowo.herokuapp.com } 4 end 5 Przyjrzyj się 3. wierszowi. Jest on bardzo podobny do 3. wiersza z poprzedniego listingu, ale zamiast opcji host: localhost , port: 3000 zawiera rzeczywisty adres URL aplikacji w usłudze Heroku. W tym miejscu wpisz adres, który nadałeś swojej aplikacji. O co tu chodzi? Otóż te dwa pliki zawierają ustawienia środowiska programistycznego i produkcyjnego. Wskazałeś w nich, aby aplikacja w lokalnym środowisku programistycz- nym wykorzystywała serwer WEBrick, a w produkcyjnym — usługę Heroku. KROK TRZECI Teraz przyjrzyj się krokowi trzeciemu. W tym kroku musisz wpisać nieco kodu obsługującego komunikaty flash. Są to niewielkie automatyczne podpowiedzi pojawiające się na stronie, gdy użytkownik wykona jakąś operację. Na przykład gdy użytkownik się zaloguje, wtedy u góry strony pojawi się komunikat flash typu „Pomyślnie zalogowałeś się do serwisu”. Po wylogowaniu pojawi się inny komunikat: „Pomyślnie wylogowałeś się z serwisu” itd. Gem Devise wyświetla powyższe komunikaty automatycznie, ale musisz wpisać trochę kodu, aby wskazać gemowi miejsce na stronie, w którym komunikaty mają się pojawiać. 78 Poleć książkęKup książkę ROZDZIA(cid:146) 4. OBS(cid:146)UGA U(cid:191)YTKOWNIKÓW ZA POMOC(cid:107) GEMA DEVISE Instrukcja zawiera proponowany kod, który trzeba umieścić w pliku strony: 1 p class= notice = notice /p 2 p class= alert = alert /p 3 Trzeba go jednak nieco zmodyfikować i zmienić wygląd tych komunikatów za pomocą platformy Bootstrap. W tym celu otwórz stronę http://getbootstrap.com/, kliknij odnośnik Components, przewiń zawartość strony i kliknij odnośnik Alerts (alerty). Komunikat flash jest w rzeczywistości alertem, więc użyj klasy alert platformy Bootstrap. Zauważ, że dostępne są cztery kolory alertów: zielony (success, czyli powodzenie), niebieski (info, informacja), żółty (warning, ostrzeżenie) i czerwony (danger, niebezpieczeństwo). Użyj niebieskiego komunikatu. Gdzie trzeba umieścić kod, aby gem Devise mógł wykorzystać komunikaty flash? Muszą one pojawiać się na każdej stronie Twojej witryny, więc odpowiednim miejscem umieszczenia kodu będzie wiersz w pliku /app/views/layouts/application.html.erb, tuż powyżej znacznika = yield i poniżej początku sekcji div: /app/views/layouts/application.html.erb 1 . 2 . 3 div class= container 4 flash.each do |name, msg| 5 = content_tag(:div, msg, class: alert alert-info ) 6 end 7 = yield 8 /div 9 . 10 Przyjrzyj się powyższemu kodowi, ponieważ wygląda nieco inaczej niż zalecany w instrukcji do gema Devise. Kod zawiera typową pętlę języka Ruby, która mówi: „Z każdym komunikatem flash zrób to i to”. W tym przypadku „to i to” oznacza umieszczenie komunikatu w sekcji div z przypi- saną klasą alert alert-info. Skąd wzięła się klasa alert alert-info? Skopiowałeś ją ze strony GetBootStrap.com z frag- mentu kodu w sekcji Alerts. Ten komunikat będzie niebieski. Zwróć również uwagę, że znacznik otwierający w 1. wierszu flash.each do |name, msg| nie zawiera znaku równości (zawiera go wiersz 5., ale nie 4.)! 79 Poleć książkęKup książkę RUBY ON RAILS. TWORZENIE APLIKACJI WWW Co to oznacza? Do tej pory wszystkie osadzone obiekty Ruby zawierały znacznik otwiera- jący =. Znak równości oznacza „wyświetl tę treść na ekranie”. Jednak nie chcemy, aby pętla wyświetlała cokolwiek na ekranie. Treść ma się pojawiać tylko wtedy, gdy warunek wewnątrz pętli będzie spełniony. W wierszu 5. znajduje się znacznik =, ponieważ jego zawartość ma być wyświetlana na ekranie. KROK PI(cid:107)TY Ostatnią czynnością do wykonania jest wpisanie w terminalu polecenia podanego w in- strukcji. Zrób to więc teraz: 1 $ rails g devise:views 2 Polecenie to uruchamia generator widoków gema Devise. Zwróć uwagę, że wcześniej uży- wałeś już polecenia generate, na przykład: 1 $ rails generate devise:views 2 Pojedyncza litera g zamiast generate jest skrótem, który można bez przeszkód stosować. Po wykonaniu powyższego polecenia sprawdź zawartość katalogu /app/views/. Powinien pojawić się w nim nowy katalog devise. Zawiera on kilka innych katalogów ze wszystkimi stronami, które gem Devise utworzył na potrzeby obsługi takich operacji jak logowanie i wylogowywanie użytkowników, zmiana profilu, resetowanie hasła itp. Sprawdź to! Również w terminalu powinno pojawić się sporo tekstu. Jest to lista stron utworzonych przez gem Devise. Przejrzyj tę listę. Czy widzisz w niej nazwy stron? Przyjrzyj się na przykład plikowi /app/views/devise/registrations/new.html.erb. Zapewne się domyślasz, że jest to strona umożliwiająca użytkownikowi zarejestrowanie się w Twojej aplikacji (tworząca „nową” rejestrację). Otwórz ten plik w edytorze. Na samym początku zobaczysz tytuł Sign Up (zarejestruj się). Usuń te słowa i w ich miejsce wpisz Rejestracja. Uwaga! Gem Devise domyślnie tworzy strony z napisami w języku angielskim. Aby na stronach pojawiały się polskie napisy, należy zmienić pliki utworzone przez gem. Szczegółowe informacje, jak to zrobić, zawarte są w dodatku, który możesz pobrać pod adresem ftp://ftp.helion.pl/przyklady/rrtwww.zip. 80 Poleć książkęKup książkę ROZDZIA(cid:146) 4. OBS(cid:146)UGA U(cid:191)YTKOWNIKÓW ZA POMOC(cid:107) GEMA DEVISE A co to jest za plik app/views/devise/sessions/new.html.erb? Jest to strona do logowania użytkowników. Gdy użytkownik się zaloguje, tworzona jest sesja. Operacja logowania po- lega na tworzeniu nowej sesji. Analogicznie wylogowanie oznacza zamknięcie sesji. Gem Devise utworzył naprawdę dużo plików i prawdę mówiąc, z większości z nich nie bę- dziesz korzystał. Nie czuj się więc przytłoczony. Instalacja gema jest prawie zakończona, pozostała jeszcze jedna czynność do wykonania. Gem został skonfigurowany, widoki utworzone, ale nie ma połączenia z bazą danych, w której będą przechowywane informacje o użytkownikach. Na szczęście nie jest to pro- blem, wystarczy wpisać poniższe dwa polecenia: 1 $ rails generate devise user 2 $ rake db:migrate 3 OBS(cid:146)UGA BAZY DANYCH W PLATFORMIE RAILS Tak naprawdę to nie pisałem jeszcze o bazach danych, więc zrobię to teraz. Dzięki plat- formie Rails praca z bazami jest wyjątkowo prosta, ale trzeba wiedzieć, co się z nimi dzieje. Za każdym razem gdy będziesz chciał coś zrobić z bazą danych za pomocą platformy Rails, będziesz musiał utworzyć tzw. migrację i wysłać ją do bazy. Migrację możesz traktować jak listę rzeczy do zrobienia. Utwórz listę, a następnie przekaż ją do bazy danych. Przed chwilą, wpisując polecenie rails generate devise user, utworzyłeś migrację i „do- dałeś” użytkowników. Możesz nawet zobaczyć zawartość pliku z migracją. Pliki z migra- cjami znajdują się w katalogu /db/migrate. W moim przypadku polecenie rails generate devise user utworzyło następujący plik z migracją: /db/migrate/20150824184627_devise_create_users 1 class DeviseCreateUsers ActiveRecord::Migration 2 def change 3 create_table(:users) do |t| 4 ## Database authenticatable 5 t.string :email, null: false, default: 6 t.string :encrypted_password, null: false, default: 7 8 ## Recoverable 9 t.string :reset_password_token 81 Poleć książkęKup książkę RUBY ON RAILS. TWORZENIE APLIKACJI WWW 10 t.datetime :reset_password_sent_at 11 12 ## Rememberable 13 t.datetime :remember_created_at 14 15 ## Trackable 16 t.integer :sign_in_count, default: 0, null: false 17 t.datetime :current_sign_in_at 18 t.datetime :last_sign_in_at 19 t.string :current_sign_in_ip 20 t.string :last_sign_in_ip 21 22 ## Confirmable 23 # t.string :confirmation_token 24 # t.datetime :confirmed_at 25 # t.datetime :confirmation_sent_at 26 # t.string :unconfirmed_email # Only if using reconfirmable 27 28 ## Lockable 29 # t.integer :failed_attempts, default: 0, null: false # Only if lock (cid:180)strategy is :failed_attempts 30 # t.string :unlock_token # Only if unlock strategy is :email or :both 31 # t.datetime :locked_at 32 33 t.timestamps null: false 34 end 35 36 add_index :users, :email, unique: true 37 add_index :users, :reset_password_token, unique: true 38 # add_index :users, :confirmation_token, unique: true 39 # add_index :users, :unlock_token, unique: true 40 end 41 end Jest tu sporo kodu, ale tak naprawdę nie musisz wiedzieć, co on realizuje. Przejrzyj go po- bieżnie i sprawdź, czy coś Ci się nie rzuciło w oczy. Zwróć uwagę, że kod zawiera odwołanie do adresu e-mail i hasła (ponieważ użytkownicy będą logowali się za pomocą tych danych). Rejestruje również czas zalogowania się użyt- kownika (wiersz 17.) i resetuje hasło (wiersz 38.). Jak wcześniej wspomniałem, w tej chwili (a nawet w ogóle) nie musisz wiedzieć, co oznacza każdy wiersz powyższego kodu. Pamiętaj tylko, że utworzyłeś migrację. Do wysłania migracji do bazy danych służy polecenie rake db:migrate. 82 Poleć książkęKup książkę ROZDZIA(cid:146) 4. OBS(cid:146)UGA U(cid:191)YTKOWNIKÓW ZA POMOC(cid:107) GEMA DEVISE BAZA PROGRAMISTYCZNA I BAZA PRODUKCYJNA Zanim przejdziemy dalej, muszę nieco powiedzieć o bazach danych (ponieważ już ich używasz). Pierwszy raz wspomniałem o nich przy okazji omawiania usługi Heroku i teraz chciałbym wrócić do tego tematu. W środowisku programistycznym wykorzystywana jest baza danych o nazwie sqlite3, bardzo prosta, instalowana razem z platformą Rails. Gdy przyjrzysz się plikowi Gemfile, znajdziesz w nim referencję do tej bazy. Jak wspomniałem wcześniej, sqlite3 nie nadaje się do obsługi produkcyjnej witryny. Do tego celu trzeba użyć innej bazy. Użyjesz bazy PostgreSQL. Dlaczego właśnie tej? Ponieważ usługa Heroku lubi tę bazę, która w dodatku jest bardzo prosta w obsłudze. Jedyną operacją, którą trzeba wykonać, jest dodanie gema postgres (co zrobiłeś już wcześniej). Jak pamiętasz, była to czynność nieco bardziej złożona niż dodanie zwykłego gema, ponieważ trzeba było wskazać, że aplikacja w środowisku programistycznym powinna wykorzystywać bazę sqlite3, a w produkcyjnym — PostgreSQL. Ale i tak było to dość proste. Oto co wtedy zrobiłeś: /Gemfile 1 source https://rubygems.org 2 gem rails , 4.2.1 3 gem sass-rails , ~ 5.0 4 gem uglifier , = 1.3.0 5 gem coffee-rails , ~ 4.1.0 6 gem jquery-rails 7 gem turbolinks 8 gem jbuilder , ~ 2.0 9 gem sdoc , ~ 0.4.0 , group: :doc 10 gem bootstrap-sass , ~ 3.3.5.1 11 gem devise , ~ 3.5.2 12 13 group :development, :test do 14 gem byebug 15 gem web-console , ~ 2.0 16 gem spring 17 end 18 19 group :development, :test do 20 gem sqlite3 21 end 22 23 group :production do 83 Poleć książkęKup książkę RUBY ON RAILS. TWORZENIE APLIKACJI WWW 24 gem pg , 0.18.2 25 gem rails_12factor , 0.0.3 26 end 27 W powyższym pliku wprowadziłeś dwie zmiany. Przede wszystkim usunąłeś oryginalne odwołanie do gema sqlite3, umieszczone w chwili utworzenia projektu. Odwołanie to jest jednak potrzebne, więc umieściłeś je w grupie odwołań w wierszu 19. Grupa ta zawiera informację, że Twoja aplikacja będzie korzystać z bazy sqlite3 w środowisku programistycznym i testowym (pamiętaj, że książka nie zawiera opisu żadnych operacji wykonywanych w środowisku testowym). Dodatkowo umieściłeś odwołania do gemów baz danych pg i rails_12factor (baza wyma- gana w usłudze Heroku), które będą wykorzystywane w środowisku produkcyjnym. Za każdym razem, gdy dodasz gem do pliku Gemfile, musisz użyć polecenia bundle install, jednak tym razem będzie nieco inaczej. To polecenie nie może obejmować opcji środowi- ska produkcyjnego. To logiczne, ponieważ w środowisku programistycznym nie powinna być instalowana baza PostgreSQL. Poniżej przedstawione jest odpowiednie polecenie: 1 $ bundle install --without production 2 Uwaga! Przed słowem without znajdują się dwa myślniki --. Powyższe polecenie trzeba wprowadzić tylko raz. Platforma Rails będzie od tej chwili pa- miętać, aby nie instalować gemów przeznaczonych dla środowiska produkcyjnego. Dlaczego znów o tym piszę? Ponieważ chcę mieć pewność, iż wiesz, że będziesz korzystał z dwóch różnych baz danych. Musisz o tym koniecznie pamiętać. Dlaczego? Ponieważ za każdym razem po utworzeniu migracji trzeba ją wysyłać do lokalnej, a nie do produkcyjnej bazy danych. Natomiast w usłudze Heroku trzeba migrację wysłać do bazy produkcyjnej (w tym przypadku PostgreSQL). WYSY(cid:146)ANIE MIGRACJI DO BAZY POSTGRESQL W US(cid:146)UDZE HEROKU Gdy użyłeś polecenia rails generate devise user, utworzyłeś migrację z obsługą użyt- kowników. Następnie za pomocą polecenia rake db:migrate wysłałeś migrację do bazy danych, konkretnie do bazy sqlite3. 84 Poleć książkęKup książkę ROZDZIA(cid:146) 4. OBS(cid:146)UGA U(cid:191)YTKOWNIKÓW ZA POMOC(cid:107) GEMA DEVISE Nie wysłałeś migracji do bazy PostgreSQL w usłudze Heroku, ale musisz to zrobić. Za każ- dym razem gdy będziesz wysyłał migrację do lokalnej bazy danych w środowisku progra- mistycznym (sqlite3), będziesz musiał również wysyłać ją do bazy w środowisku produk- cyjnym (PostgreSQL). Służy do tego następujące polecenie: 1 $ heroku run rake db:migrate 2 Polecenie wygląda niemal identycznie jak rake db:migrate użyte lokalnie, zawiera jedynie na początku słowa heroku run. Pamiętaj, że jeżeli nie użyjesz tego polecenia, baza danych w usłudze Heroku nie będzie działała prawidłowo. SPRAWDZENIE NOWYCH STRON GEMA DEVISE Idźmy dalej! Zakończyłeś instalację gema Devise, wysłałeś migrację do bazy, dzięki czemu gem może obsługiwać użytkowników zarówno w środowisku programistycznym, jak i produk- cyjnym, oraz utworzyłeś strony umożliwiające użytkownikom logowanie i wylogowywanie z aplikacji. Czas więc zobaczyć te strony! Przede wszystkim zatrzymaj i ponownie uruchom serwer. Następnie aby sprawdzić, gdzie te strony się znajdują, odszukaj ścieżki utworzone przez gem Devise. W tym celu użyj znanego Ci już polecenia rake routes: 1 $ rake routes 2 Jak pamiętasz, gdy poprzednim razem użyłeś tego polecenia, w aplikacji istniały tylko dwie ścieżki (do stron index i O mnie). Tym razem jest ich o wiele więcej! 1 $ rake routes 2 Prefix Verb URI Pattern Controller#Action 3 new_user_session GET /users/sign_in(.:format) devise/sessions#new 4 user_session POST /users/sign_in(.:format) devise/sessions#create 5 . 6 . Jak poprzednio, pierwsza kolumna zawiera ścieżkę. W drugiej znajduje się informacja, czy jest to zwykła strona (komenda GET), czy formularz (POST), czy strona do wylogowania użytkownika (DELETE). W trzeciej kolumnie znajduje się adres URL, którego użyjesz do wy- świetlenia żądanej strony w przeglądarce. Piąta kolumna zawiera opis operacji kontrolera. 85 Poleć książkęKup książkę RUBY ON RAILS. TWORZENIE APLIKACJI WWW Powyżej nie jest przedstawiona pełna lista ścieżek, tylko jej początek, ale możesz wprowadzić powyższe polecenie i zobaczyć pełną listę. Pamiętaj, że ścieżki zawierające komendę GET oznaczają zwykłe strony WWW. Wybierz zatem jedną z nich, wpisz adres w przeglądarce i zobacz, jak strona wygląda! Wpisz następujący adres: https://obrazkowo-programista.c9.io/users/sign_up (lub inny własny adres URL). (Strona gema Devise do rejestrowania użytkowników https://obrazkowo-programista.c9.io/users/sign_up) Sprawdź również stronę logowania — https://obrazkowo-programista.c9.io/users/sign_in (lub inny własny adres URL): (Strona gema Devise do logowania użytkowników https://obrazkowo-programista.c9.io/users/sign_in) 86 Poleć książkęKup książkę ROZDZIA(cid:146) 4. OBS(cid:146)UGA U(cid:191)YTKOWNIKÓW ZA POMOC(cid:107) GEMA DEVISE Na tej stronie znajduje się odnośnik dla użytkownika, którzy zapomniał, jak brzmi jego hasło, i musi je zresetować. Tę stronę też możesz sprawdzić. Utworzone strony i formularze są bardzo funkcjonalne. Za ich pomocą użytkownik może założyć konto, zalogować się itd. Oczywiście strony te na razie wyglądają dość skromnie, ale sama funkcjonalność działa prawidłowo. Teraz nadasz stronom elegancki wygląd. ZMIANA WYGL(cid:107)DU STRON GEMA DEVISE Teraz zajmij się poprawieniem wyglądu stron. To całkiem proste. Wszystkie pliki, które trzeba zmienić, znajdują się w katalogu /app/views/devise. Zacznij od strony służącej do rejestrowania użytkownika: /app/views/devise/registrations/new.html.erb 1 h2 Rejestracja /h2 2 3 = form_for(resource, as: resource_name, url: registration_path(resource_name)) (cid:180)do |f| 4 = devise_error_messages! 5 6 div class= field 7 = f.label :email br / 8 = f.email_field :email, autofocus: true 9 /div 10 11 div class= field 12 = f.label :has(cid:239)o 13 if @minimum_password_length 14 em (minimum = @minimum_password_length znaków) /em 15 end br / 16 = f.password_field :password, autocomplete: off 17 /div 18 19 div class= field 20 = f.label :potwierd(cid:283)_has(cid:239)o br / 21 = f.password_field :password_confirmation, autocomplete: off 22 /div 23 24 div class= actions 25 = f.submit Wy(cid:258)lij 26 /div 27 end 28 29 = render devise/shared/links 30 87 Poleć książkęKup książkę RUBY ON RAILS. TWORZENIE APLIKACJI WWW Ten plik może wyglądać na najbardziej skomplikowany z tych, jakie do tej pory widziałeś, ale nie jest tak źle. Aby zmienić wygląd strony gema Devise, użyjesz oczywiście platformy Bootstrap! Otwórz stronę GetBootstrap.com i kliknij odnośnik CSS u góry ekranu. Następnie kliknij Forms (formularze) po prawej stronie. Teraz musisz zrobić kilka rzeczy. Nie będziesz ko- piował i wklejał całego kodu widocznego pod przykładowym formularzem. Zamiast tego wybierzesz tylko jego dwa fragmenty. Po pierwsze, platforma Bootstrap wymaga, aby każde pole i etykieta formularza były umiesz- czone w sekcji div z klasą form-group: 1 div class= form-group 2 . 3 . 4 /div W pliku new.html.erb elementy te już są umieszczone w sekcji div, ale jej klasa nosi nazwę field. Możesz to sprawdzić w wierszach 6., 11. i 19. na powyższym listingu. To żaden problem. Po prostu w wierszach 6., 11. i 19. zmień słowo field na form-group. Po drugie, każdemu polu formularza trzeba przypisać klasę form-control (pole formularza to miejsce, w którym wpisuje się dane). W pliku new.html.erb pola te są umieszczone w wierszach 8., 16. i 21.: 7 8 = f.email_field :email, autofocus: true, class: form-control 9 15 16 = f.password_field :password, autocomplete: off , class: form-control 17 20 21 = f.password_field :password_confirmation, autocomplete: off , (cid:180)class: form-control 22 Po trzecie, zwróć uwagę, że formularz wymaga, aby użytkownik wpisał hasło, a następnie je potwierdził. Według mnie nie ma potrzeby, aby w tak prostej aplikacji użytkownik dwu- krotnie wpisywał hasło, więc można się pozbyć dodatkowego pola. Wystarczy w tym celu usunąć wiersze od 19. do 22. Po czwarte, co zrobić z przyciskiem Wyślij? Wygląda dość ubogo… Można tu użyć komponentu button platformy Bootstrap w taki sam sposób jak na stronie index. Wpisz następujący kod: 88 Poleć książkęKup książkę ROZDZIA(cid:146) 4. OBS(cid:146)UGA U(cid:191)YTKOWNIKÓW ZA POMOC(cid:107) GEMA DEVISE 19 20 = f.submit Wy(cid:258)lij , class: btn btn-primary 21 Zmieniony plik wygląda teraz tak: /app/views/devise/registrations/new.html.erb 1 h2 Rejestracja /h2 2 3 = form_for(resource, as: resource_name, url: registration_path(resource_name)) (cid:180)do |f| 4 = devise_error_messages! 5 6 div class= form-group 7 = f.label :email br / 8 = f.email_field :email, autofocus: true, class: form-control 9 /div 10 11 div class= form-group 12 = f.label :has(cid:239)o 13 if @minimum_password_length 14 em (minimum = @minimum_password_length znaków) /em 15 end br / 16 = f.password_field :password, autocomplete: off , class: form-control 17 /div 18 19 div class= actions 20 = f.submit Wy(cid:258)lij , class: btn btn-primary 21 /div 22 end 23 24 = render devise/shared/links 25 (Strona gema Devise do rejestrowania użytkowników https://obrazkowo-programista.c9.io/users/sign_up) 89 Poleć książkęKup książkę RUBY ON RAILS. TWORZENIE APLIKACJI WWW Teraz strona wygląda zdecydowanie lepiej, ale dodając panele, możesz nadać jej jeszcze lepszy wygląd. Wróć do strony GetBootstrap.com, kliknij odnośniki Components, a następ- nie Panels (panele) po prawej stronie ekranu. Dodasz teraz komponenty Panel with heading (panel z nagłówkiem) oraz Panel with footing (panel ze stopką) u dołu swojej strony w miejscu, gdzie znajduje się odnośnik Logowanie. Poniższy kod pokazuje, jak to zrobić: /app/views/devise/registrations/new.html.erb 1 div class= panel panel-default 2 div class= panel-heading h2 Rejestracja /h2 /div 3 div class= panel-body 4 5 = form_for(resource, as: resource_name, url: registration_path(resource_name)) (cid:180)do |f| 6 = devise_error_messages! 7 8 div class= form-group 9 = f.label :email br / 10 = f.email_field :email, autofocus: true, class: form-control 11 /div 12 13 div class= form-group 14 = f.label :has(cid:239)o 15 if @minimum_password_length 16 em (minimum = @minimum_password_length znaków) /em 17 end br / 18 = f.password_field :password, autocomplete: off , class: form-control 19 /div 20 21 div class= actions 22 = f.submit Wy(cid:258)lij , class: btn btn-primary 23 /div 24 end 25 26 /div 27 div class= panel-footer = render devise/shared/links /div 28 /div 29 Zmiany wyróżnione są pogrubioną czcionką. Zawartość całej strony została umiesz- czona wewnątrz sekcji div z opcją class= panel panel-default . Nagłówek strony został umieszczony wewnątrz sekcji div z opcją class= panel-heading , główna treść strony — w sekcji div z opcją class= panel-body , a odnośniki — w sekcji div z opcją class= panel-footer . 90 Poleć książkęKup książkę ROZDZIA(cid:146) 4. OBS(cid:146)UGA U(cid:191)YTKOWNIKÓW ZA POMOC(cid:107) GEMA DEVISE Wynik zmian powinien wyglądać jak niżej: (Strona gema Devise do rejestrowania użytkowników https://obrazkowo-programista.c9.io/users/sign_up o poprawionym wyglądzie) Teraz możesz samodzielnie wprowadzić te same zmiany w innych formularzach gema Devise: /app/views/devise/registrations/edit.html.erb (strona do zmiany profilu użytkownika) /app/views/devise/sessions/new.html.erb (strona do logowania użytkownika) /app/views/devise/passwords/new.html.erb (strona do resetowania zapomnianego hasła) Zauważ, że powyższe strony wyglądają dość podobnie, więc łatwo możesz wprowadzić w nich te same zmiany co w pliku /app/views/devise/registrations/new.html.erb. TWORZENIE ODNO(cid:165)NIKÓW NA STRONACH GEMA DEVISE Teraz, gdy strony utworzone przez gem Devise wyglądają całkiem dobrze, trzeba w pasku nawigacyjnym umieścić odnośniki. Można to zrobić, wykorzystując znacznik link_to, tak jak poprzednio, ale tym razem wprowadzimy małą odmianę. Odnośniki nie będą widoczne na wszystkich stronach dla wszystkich odwiedzających je użytkowników. Na przykład użytkownik nie będzie widział odnośnika Edycja profilu, jeżeli nie będzie zalogowany (a tym bardziej jeżeli się nie zarejestruje!). Ponadto użytkownik, który już się zalogował, nie powinien widzieć odnośnika do strony logowania. Potrzebny jest również odnośnik do wylogowania, który wygląda nieco inaczej niż odno- śniki utworzone wcześniej. 91 Poleć książkęKup książkę RUBY ON RAILS. TWORZENIE APLIKACJI WWW SPRAWDZENIE, CZY U(cid:191)YTKOWNIK JEST ZALOGOWANY Najpierw zajmijmy się najważniejszymi rzeczami, czyli w jaki sposób sprawdzić, czy dany użytkownik jest zalogowany, czy nie. Na szczęście dzięki platformie Rails jest to bardzo proste, trzeba w tym celu wpisać nieco kodu Ruby z prostą instrukcją if. Kod ten można przetłumaczyć następująco: „Jeżeli użytkownik jest zalogowany, wyświetl podane odnośniki, a w przeciwnym wypadku wyświetl inne”. Poniżej przedstawiony jest ten kod: 1 if user_signed_in? 2 . 3 . 4 else 5 . 6 . 7 end 8 Odnośniki, które powinny być widoczne tylko wtedy, gdy użytkownik będzie zalogowany (edycja profilu, wylogowanie), trzeba umieścić pomiędzy pierwszym wierszem a instrukcją else. Odnośniki, które będą wyświetlane, gdy użytkownik nie będzie zalogowany (logowa- nie, rejestracja), zostaną umieszczone pomiędzy instrukcjami else i end. Aby poznać ścieżki prowadzące do odpowiednich stron (edycja profilu, logowanie, wylo- gowanie, rejestracja), użyj dobrze znanego Ci polecenia rake routes: 1 $ rake routes 2 Zwróć szczególną uwagę na ścieżki zawierające komendę GET (pamiętaj o dodaniu koń- cówki _path do zmiennych w poleceniu link_to): Logowanie: new_user_session_path Edycja profilu: edit_user_registration_path Rejestracja: new_user_registration_path Wylogowanie: destroy_user_session_path Przyjrzyjmy się ostatniej ścieżce, oznaczającej stronę wylogowania. Wynik polecenia rake routes pokazuje, że ścieżka ta zawiera komendę DELETE (usuń), a nie GET (pobierz). To zro- zumiałe, ponieważ wylogowanie z aplikacji oznacza „usunięcie” sesji. 92 Poleć książkęKup książkę ROZDZIA(cid:146) 4. OBS(cid:146)UGA U(cid:191)YTKOWNIKÓW ZA POMOC(cid:107) GEMA DEVISE Jednak odnośnik do komendy DELETE tworzy się nieco inaczej niż zwykły odnośnik. Wygląda on następująco: 1 = link_to Wylogowanie , destroy_user_session_path, method: :delete 2 Zwróć uwagę, że kod wygląda podobnie jak w przypadku zwykłego odnośnika, tylko na końcu dodana jest opcja method: :delete. To bardzo proste. ZMIANA PASKA NAWIGACYJNEGO Masz zatem przygotowaną instrukcję if, jak również odnośniki do stron gema Devise, które zamierzasz dodać. Zmień pasek nawigacyjny: /app/views/home/_header.html.erb 1 nav class= navbar navbar-default role= navigation 2 div class= container 3 !-- Brand and toggle get grouped for better mobile display -- 4 div class= navbar-header 5 button type= button class= navbar-toggle collapsed data-toggle= collapse 6 data-target= #bs-example-navbar-collapse-1 7 span class= sr-only Toggle navigation /span 8 span class= icon-bar /span 9 span class= icon-bar /span 10 span class= icon-bar /span 11 /button 12 = link_to Obrazkowo , root_path, class: navbar-brand 13 /div 14 15 !-- Collect the nav links, forms, and other content for toggling -- 16 div class= collapse navbar-collapse id= bs-example-navbar-collapse-1 17 ul class= nav navbar-nav navbar-right 18 li = link_to Strona g(cid:239)ówna , root_path /li 19 li = link_to O mnie , home_about_path /li 20 21 if user_signed_in? 22 li = link_to Edycja profilu , edit_user_registration_path /li 23 li = link_to Wylogowanie , destroy_user_session_path, (cid:180)method: :delete /li 24 else 25 li = link_to Logowanie , new_user_session_path /li 26 li = link_to Rejestracja , new_user_registration_path /li 27 end 28 29 /ul 30 /div !-- /.navbar-collapse -- 31 /div !-- /.container-fluid -- 32 /nav 33 93 Poleć książkęKup książkę RUBY ON RAILS. TWORZENIE APLIKACJI WWW Zmiana polega na dodaniu wierszy od 21. do 27. Zwróć uwagę, że instrukcja if sprawdza- jąca, czy użytkownik jest zalogowany, została umieszczona poniżej odnośników Strona główna i O mnie, ponieważ odnośniki te muszą być wyświetlane niezależnie od tego, czy użytkownik jest zalogowany, czy nie. Zrobiłeś już całkiem sporo. Użytkownicy mogą się rejestrować, logować, zmieniać swoje profile, a pasek nawigacyjny zmienia się dynamicznie w zależności od tego, czy użytkownik jest zalogowany, czy nie. Teraz pora na dodanie do aplikacji prawdziwej funkcjonalności umożliwiającej użytkow- nikom ładowanie „pinów” na stronę. Zajmiemy się tym w następnym rozdziale. 94 Poleć książkęKup książkę SKOROWIDZ adres URL, 153 Amazon S3, 124 klucz dostępu, 128 klucz poufny, 128 aplikacja, 12 toolbelt, 41 architektura MVC, 23 A B baza danych, 81 PostgreSQL, 83 produkcyjna, 83 programistyczna, 83 sqlite3, 83 biblioteka jQuery Masonry, 133, 137 Bitbucket, 32, 35 błędy, 44 Bootstrap, 47, 59 CRUD, 99, 102 CSS, 62, 97 C D definiowanie adresu URL, 153 Devise Helper, 111 dodawanie komponentów Bootstrap, 59 nazwy użytkownika, 146 nowej strony, 27, 47, 49 paginacji stron, 142 domena, 154 dostosowanie platformy Bootstrap, 70 drzewo katalogów, 29 G gem, 25 bootstrap-sass, 60 Devise, 75, 78, 80, 85 jquery-turbolinks, 134 paperclip, 117 postgres, 83 will_paginate, 142, 143 generator, 77 GitHub, 32, 38 I identyfikator klucza dostępu, 128 index, 28, 49 instalacja gema Paperclip, 119 narzędzia ImageMagick, 118 platformy Bootstrap, 60 programu Git, 33 instrukcja if, 114 Poleć książkęKup książkę J język LESS, 70 Ruby, 10 SASS, 70 jQuery Masonry, 133, 137 Jumbotron, 64, 145 K katalog app, 12 controllers, 24 db, 24 devise, 87 git, 34 images, 62 javascripts, 62 layouts, 55 migrate, 81 models, 24 pins, 96 stylesheets, 62 views, 24 klasa alert alert-info, 79 form-group, 88 klucz poufny, 128 SSH, 36 kolejność pinów, 141 komenda DELETE, 85 GET, 85 POST, 85 komentarz, 25 komponent Jumbotron, 64, 145 Navbar, 68 komponenty Bootstrap, 59 komunikat flash, 79 o błędzie, 118 konsola Amazon AWS, 126 kontrola wersji, 32 RUBY ON RAILS. TWORZENIE APLIKACJI WWW kontroler, 23, 49 kontroler szkieletu, 100 L lista pinów, 104, 110, 132, 137, 143 logowanie, 86, 92 (cid:146) ładowanie obrazów, 117, 120 M migracja do bazy danych, 84 MVC, Model, View, Controller, 23 N nadawanie uprawnień, 127 nazwa użytkownika, 146 O obiekt @pins, 123 Devise, 111 pin.description, 149 obsługa bazy danych, 81 użytkowników, 75 odnośnik, 91 Customize, 151 do strony, 51 Less variables, 71 Logowanie, 90 masonry-rails, 134 opcje paginacji, 143 P paginacja stron, 131, 142 pasek nawigacyjny, 68, 93, 105 pierwsza aplikacja, 22 piny, 98 platforma Bootstrap, 59, 60 158 Poleć książkęKup książkę plik _form.html.erb, 101 _header.html.erb, 57, 68 application.html.erb, 55, 56, 63 bootstraply.css.scss, 73, 136, 152 Gemfile, 25–27, 43, 61, 76 index.html.erb, 57 new.html.erb, 88 pins.coffee, 135 pins.scss, 136 pins_controller.rb, 120 README, 19, 39 routes.rb, 50 show.html.erb, 114 pliki .erb, 29 częściowe, 54 gemów, 25 migracji, 102 poddomena, 153 podziały wierszy, 132 polecenia terminalowe, 20 polecenie bundle install, 84 cd, 34 Create repository, 36 generate, 50 Manage account, 36 rake db migrate, 106 rake routes, 52, 85 pomoc, 44 portal Amazon AWS, 125, 127 PostgreSQL, 83 powiązania, 107 program Git, 32 ImageMagick, 117 VirtualBox, 16 przekierowanie strony, 30 przestrzeń robocza, 17 przywracanie kodu, 35 R rejestrowanie użytkowników, 91 repozytorium, 36, 39 SKOROWIDZ S SASS, Syntactically Awesome StyleSheets, 70 serwer WEBrick, 22 serwis Pinterest, 150 skrót klawiaturowy Command+C, 35 Command+S, 30 Ctrl+C, 35 Ctrl+S, 30 Ctrl+V, 36 sprawdzanie logowania, 92 strony, 85, 104 widoków szkieletu, 97 sqlite3, 83 stosowanie powiązań, 108 strona, 12 index, 28, 49 z listą pinów, 145 system Bitbucket, 32, 35 GitHub, 32, 38 szkielet aplikacji, 95 (cid:165) ścieżka do strony, 50 środowisko programistyczne, 15, 18 T tabela, 102 terminal, 12 tworzenie nowej strony, 48 odnośników, 51, 91 paska nawigacyjnego, 68 pierwszego projektu, 21 pinów, 100, 110 plików częściowych, 54 powiązań, 109 prostej aplikacji, 47 szkieletu aplikacji, 95 własnej domeny, 154 zasobnika, 126 159 Poleć książkęKup książkę RUBY ON RAILS. TWORZENIE APLIKACJI WWW typy danych, 96 obrazów, 120 U udostępnianie aplikacji, 40 upiększanie witryny, 151 uruchomienie aplikacji, 22 urządzenia mobilne, 139 usługa Amazon S3, 117, 124 Heroku, 40, 42, 85 uwierzytelnianie użytkowników, 107 W wersja Ruby i Rails, 19 widok, 23, 100 wiersz poleceń, 12 wygląd strony, 131, 138 wysyłanie kodu do usługi, 42 wyświetlanie pinu, 122, 138 Z zapisywanie obrazów, 124 zasobniki, buckets, 125 zmiana kolejności pinów, 141 koloru przycisków, 152 paska nawigacyjnego, 93, 105 wyglądu stron, 87 znak #, 25 @, 72 $, 12 160 Poleć książkęKup książkę
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Ruby on Rails. Tworzenie aplikacji WWW
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: