IT a programování

„Welcome aboard“ pouze na lokálu

Po vytvoření nové aplikace v Ruby on Rails by měla být vidět defaultní stránka:

Welcome aboard

You’re riding Ruby on Rails!
About your application’s environment

Když však aplikaci nahrajeme na ostrý sever, např. na heroku, tak se místo této stránky objeví následující hláška:

The page you were looking for doesn't exist.
You may have mistyped the address or the page may have moved.

pokračování…

MySQL Workbench 6.2.5

MySQL Workbench 6.2.5 je nestabilní

MySQL Workbench je nástroj pro návrh tabulek MySQL. Jde o pokračovatele staršího nástroje DBDesigneru 4. Je k dispozici zdarma jako open source pod MySQL GPL Licencí.

Ozkoušela jsem aktuální verzi 6.2.5. Při stažení jsem vybrala defaultně nabízenou volbu instalátoru. Instalace byla hodně dlouhá, je to svým způsobem moloch. Navíc je vyžadováno založení účtu na Oracle. Instalovaly se knihovny C++, zvlášť se musel nainstalovat Python, instaloval se také do Windows MySQL server. Instalace dopadla dobře. Bohužel po vytvoření malého projektu se záhy projevil problém s ukládáním projektů. Nešel uložit ani nově vytvořený projekt, který nic neobsahoval. Prostě to celé spadlo. Vyhodilo to hlášku, že MySQL Workbench přestal pracovat a konec (v angličtině pravděpodobně: MySQL Workbench has stopped working). Naštěstí šel projekt obnovit přes záložní soubor s příponou .bak.

pokračování…

Ruby on Rails tutorial - 8.6 Exercises

Uvádím zde řešení cvičení k tutoriálu Ruby on Rails od Michaela Hartla – kapitoly 8.6 úlohy 2.

Listing 8.61

Místo ? bude v kódu uveden @. Kód souboru app/controllers/sessions_controller.rb bude následující:

   def create
    @user = User.find_by(email: params[:session][:email].downcase)
    if @user && @user.authenticate(params[:session][:password])
      log_in @user
      params[:session][:remember_me] == '1' ? remember(@user) : forget(@user)
      redirect_to @user
    else
      flash.now[:danger] = 'Invalid email/password combination'
      render 'new'
    end
  end

pokračová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

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