Aktualizováno: 23. 11. 2019, datum vydání: 31. 12. 2018
Popularita frameworků pro práci s webem se mění každým rokem. Zajímavé porovnání můžeme získat z nástroje Google Trends po zadání termínů (frameworků), které chceme porovnat. Analýza se zakládá na vyhledávaných slovech pomocí Google. Je vidět i region rozšíření daného frameworku, pokud odstraníme postupně zadané termíny. Podle tohoto nástroje zatím vede Ruby on Rails s aktuálním rozšířením hlavně v Číně. Oblíbenost Ruby on Rails v ČR příliš velká není.
Aktualizováno: 24. 9. 2020, datum vydání: 26. 4. 2015
Chytré CSS s proměnnými a funkcemi
V tutoriálu Ruby on Rails od Michaela Hartla v páté kapitole je použit Bootstrap. Bootstrap je HTML, CSS a JavaScriptový framework postavený na preprocesorech CSS: Less a Sass. Preprocesory Less a Sass umožňují CSS obohatit o proměnné, funkce a následně takovýto kód předělají do klasického CSS.
Bootstrap framework používá nativně Less, které lze následně překonvertovat pomocí bootstrap-sass z Less na Sass. Bootstrap umožňuje vývojářům vytvořit jednoduše responzivní desing.
test "invalid signup information" do
get signup_path
assert_no_difference 'User.count' do
post users_path, user: { name: "",
email: "user@invalid",
password: "foo",
password_confirmation: "bar" }
end
assert_template 'users/new'
assert_select 'div#error_explanation'
assert_select 'div.alert'
assert_select 'div.alert-danger'
end
Kód příslušné třídy je obsažen v souboru views/shared/_error_messages.html.erb. Funkčnost testu otestujeme pomocí příkazu bundle exec rake test.
Aktualizováno: 23. 9. 2020, datum vydání: 13. 3. 2015
Zde je má poznámka k tutoriálu Ruby on Rails od Michaela Hartla – 7.4.1 The finished signup form. Při nezávislém zobrazení stránky users (např. při refresh) https://rails-tutorial-jitka-1.c9.io/users se může objevit tato chybová hláška:
Unknown action
The action 'index' could not be found for UsersController
Aby stránka fungovala tak, jak zatím potřebujeme, tak se stačí vrátit na stránku Sign up https://rails-tutorial-jitka-1.c9.io/signup a dát Create my account. Po kliknutí na tlačítko se dostaneme na stránku https://rails-tutorial-jitka-1.c9.io/users, která již bude normálně funkční a vypíše případné hlášky o chybách.
jitka@rails-tutorial:~/workspace/sample_app (sign-up) $ rails console
Loading development environment (Rails 4.2.0)
>> User.count
(0.1ms) SELECT COUNT(*) FROM "users"
=> 0
>> get signup_path
NameError: undefined local variable or method `signup_path' for main:Object
from (irb):2
...
Vlastně nejde o chybu, protože tento příkaz se měl vykonat nikoli v konzoli irb, ale v souboru test/integration/users_signup_test.rb viz Listing 7.21, ale člověka to zmate, když čte tutoriál.
Chybná emailová adresa foo@bar..com se doplní do souboru test/models/user_test.rb mezi testované adresy:
test "email validation should reject invalid addresses" do
invalid_addresses = %w[user@example,com user_at_foo.org user.name@example.
foo@bar_baz.com foo@bar+baz.com foo@bar..com]
invalid_addresses.each do |invalid_address|
@user.email = invalid_address
assert_not @user.valid?, "#{invalid_address.inspect} should be invalid"
end
end
Tyto úlohy jsou vyřešeny v rámci Listing 5.36 a Listing 5.37, i když jdou vyřešit i jiným způsobem.
Úloha 3 (Listing 5.38)
Vytvořila jsem si prázdný soubor test/helpers/application_helper_test.rb a do něj nejprve dala chybný kód. Test bundle exec rake test samozřejmě neprošel. Následně jsem do souboru doplnila správný kód:
require 'test_helper'
class ApplicationHelperTest > ActionView::TestCase
test "full title helper" do
assert_equal full_title, "Ruby on Rails Tutorial Sample App"
assert_equal full_title("Help"), "Help | Ruby on Rails Tutorial Sample App"
end
end
Aktualizováno: 23. 9. 2020, datum vydání: 18. 2. 2015
mv: cannot stat ‘rails.png’: No such file or directory
Při zkoušení skvělého tutoriálu k Ruby on Rails od Michaela Hartla v kapitole 5.1.1 Site navigation (Listing 5.2) mi nešel dle návodu nahrát na server Cloud9 obrázek rails.png. Příčinu neznám, jen to vyhodilo tuto hlášku:
jitka@rails-tutorial:~/workspace/sample_app (filling-in-layout) $ curl -O http://rubyonrails.org/images/rails.png
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
jitka@rails-tutorial:~/workspace/sample_app (filling-in-layout) $ mv rails.png app/assets/images/
mv: cannot stat ‘rails.png’: No such file or directory
Aktualizováno: 22. 9. 2020, datum vydání: 19. 1. 2015
Chybová hláška FILL_IN
Při zkoušení cvičení v Ruby on Rails skvělého tutoriálu od Michaela Hartla v kapitole 2.5 u Listing 2.19 můžete narazit na chybovou hlášku, kterou vygeneruje prohlížeč:
NameError in UsersController#index
uninitialized constant User::FILL_IN
Extracted source (around line #3):
1
2
3
4
5
class User < ActiveRecord::Base
has_many :microposts
validates FILL_IN, presence: true
validates FILL_IN, presence: true
end
Rails.root: /home/ubuntu/workspace/toy_app
...
Aktualizováno: 22. 9. 2020, datum vydání: 18. 1. 2015
Tutoriál od Michaela Hartla k Ruby on Rails využívá pro vývoj projektů vývojové prostředí Cloud9. Během zkoušení jsem narazila na některé chybové hlášky, které lze jednoduše vyřešit následujícím způsobem.
No application seems to be running here!
Po určité době nečinnosti či po přihlášení po pár dnech, se může objevit tato chybová hláška:
Aktualizováno: 22. 9. 2020, datum vydání: 28. 12. 2014
Skvělý tutoriál Ruby on Rails od Michaela Hartla provede programátora krok za krokem vývojem v tomto prostředí. Pro vývoj a nasazení jsou použity následující služby dostupné na internetu.
Cloud9 – vývojové prostředí cloud IDE
Nemusíte mít nainstalováno Ruby on Rails na svém PC. Stačí připojení k internetu a můžete si zkoušet Ruby on Rails. Pro vývojové prostředí je podle manuálu použita služba Cloud9. Tam běží server, do kterého si nainstalujete určitou verzi Ruby. Tam si vytváříte projekty, upravujete kód přes internetové rozhraní, máte přes internet k dispozici terminálové okno serveru a zároveň si spouštíte výsledek v URL okně prohlížeče (jako na lokále). Komunikace probíhá přes https, tedy šifrovaně. Zároveň budete mít na tomto serveru automaticky zprovozněn verzovací systém Git, který je součástí Ruby on Rails. Takže veškerý vývoj aplikace se připraví a bude uložen na Cloud9.