IT a programování

Ruby on Rails tutorial - Listing 8.52

Opět mi neprošel test v tutoriálu Ruby on Rails od Michaela Hartla – v kapitole 8.5 Listing 8.52.

NoMethodError: undefined method `full_title'

Po spuštění testu podle Listing 8.52 test nebyl zelený Green, ale červený Red. Objevila se mi následující hláška:

jitka@rails-tutorial:~/workspace/sample_app (log-in-log-out) $ bundle exec rake test
Started

ERROR["test_layout_links", SiteLayoutTest, 0.599118864]
 test_layout_links#SiteLayoutTest (0.60s)
NoMethodError:         NoMethodError: undefined method `full_title' for #<SiteLayoutTest:0x00000008205f28>
            test/integration/site_layout_test.rb:12:in `block in <class:SiteLayoutTest>'
        test/integration/site_layout_test.rb:12:in `block in <class:SiteLayoutTest>'

  25/25: [=====================================================================] 100% Time: 00:00:00, Time: 00:00:00

Finished in 0.69037s
25 tests, 59 assertions, 0 failures, 1 errors, 0 skips

pokračování…

Ruby on Rails tutorial - Listing 8.23

Narazila jsem asi na drobnou chybu v tutoriálu Ruby on Rails od Michaela Hartla – v kapitole 8.5 Listing 8.23

NoMethodError: undefined method `full_title'

Po spuštění testu podle Listing 8.25 test nebyl zelený Green, ale červený Red. Objevila se mi následující hláška:

jitka@rails-tutorial:~/workspace/sample_app (log-in-log-out) $ bundle exec rake test
Started

ERROR["test_layout_links", SiteLayoutTest, 0.519295788]
 test_layout_links#SiteLayoutTest (0.52s)
NoMethodError:         NoMethodError: undefined method `full_title' for #<SiteLayoutTest:0x000000062eab48>
            test/integration/site_layout_test.rb:12:in `block in <class:SiteLayoutTest>'
        test/integration/site_layout_test.rb:12:in `block in <class:SiteLayoutTest>'

  22/22: [=====================================================================] 100% Time: 00:00:00, Time: 00:00:00

Finished in 0.77941s
22 tests, 51 assertions, 0 failures, 1 errors, 0 skips

pokračování…

Ruby on Rails tutorial - 7.7 Exercises

Uvádím zde řešení cvičení k tutoriálu Ruby on Rails od Michaela Hartla – kapitola 7.7

Úloha 2 (Listing 7.32).

  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.

pokračování…

Ruby on Rails tutorial - 7.4.1 The finished signup form

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.

pokračování…

Ruby on Rails tutorial - 7.3.4 A test for invalid submission

Uvádím zde zádrhel v tutoriálu Ruby on Rails od Michaela Hartla – 7.3.4 A test for invalid submission. Po zadání příkazu get signup_path se objeví chybová hláška.

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.

Ruby on Rails tutorial - Listing 7.8

Uvádím zde opravu příkladu v tutoriálu Ruby on Rails od Michaela Hartla – 7.1.4 A Gravatar image and a sidebar, Listing 7.8.

V tutoriálu je drobná chybička, která na první pohled budí dojem, že chybí příslušná knihovna:

jitka@rails-tutorial:~/workspace/sample_app (sign-up) $ rails console
Loading development environment (Rails 4.2.0)
>> email = "MHARTL@example.COM".
?> Digest::MD5::hexdigest(email.downcase)
NoMethodError: private method `Digest' called for "MHARTL@example.COM":String
        from (irb):2
...

pokračování…

Ruby on Rails tutorial - 6.5 Exercises

Uvádím zde řešení cvičení k tutoriálu Ruby on Rails od Michaela Hartla – kapitola 6.5.

Úloha 3 je vyřešena v rámci (Listing 6.43)

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

Ruby on Rails tutorial - 5.6 Exercises

Uvádím zde řešení cvičení k tutoriálu Ruby on Rails od Michaela Hartla – kapitola 5.6.

Úloha 1 a 2

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

pokračování…

Ruby on Rails tutorial - 5.1.1 Site navigation

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

pokračování…

Články na této stránce: