ギークなエンジニアを目指す男

機械学習系の知識を蓄えようとするブログ

Railsチュートリアル3章を学んでみた

Railsチュートリアル3章に突入しました。

重要なポイントだと思った部分や感想を記載していきます。

コントローラーの作成と削除

コントローラーの作成は今まで散々おこなってきましたが、

& rails g controller StaticPages home help

でしたね。

上記コマンドによって、

  • static_pages_controller
  • help.html.erb
  • home.html.erb

の3ファイルが作成されます。

ここで、ファイルの名称などを誤って作成してしまった場合は
削除できるコマンドもあります。

$ rails destroy controller StaticPages home help

これで綺麗に削除されます。

RED / GREEN / REFACTOR

Railsではテストコードを書く・・・RED
REDを解消するコードを記述する・・・GREEN
コードを綺麗に保つ・・・REFACTOR
というように呼ばれるようです。

application.html.erbについて

このファイルはrails gコマンドによって作成される重要なファイルです。
デフォルトで下記のようなコードがあるかと思います。

<body>
  <%= yield %>
</body>

これは、
レイアウトを使う際に、/static_pages/home等にアクセスすると、home.html.erbの内容がHTMLに変換され、<%= yield %>の位置に挿入されるものだと理解しておきましょう。

3.4.3 レイアウトと埋め込みRuby (Refactor)の演習問題の解答

下記私の解答を載せておきます。

sample_app/test/controllers/static_pages_controller_test.rb
に下記コードを追加します。

~~~
  test "should get contact" do
    get static_pages_contact_url
    assert_response :success
    assert_select "title", "Contact | #{@base_title}"
  end
~~~

そして、コントローラーにcontactメソッドを追加します。
sample_app/app/controllers/static_pages_controller.rb

class StaticPagesController < ApplicationController
  def home
  end

  def help
  end

  def about
  end

  def contact
  end
end

最後にルーティングを追加します。
sample_app/config/routes.rb

Rails.application.routes.draw do
  get 'static_pages/home'
  get 'static_pages/help'
  get 'static_pages/about'
  get 'static_pages/contact'

  # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
  root 'application#hello'
end

これでテストもGREENになり、アプリも正しく表示されるはずです。

3章まとめ

この章でもゼロからアプリを作成しました。

今回は静的なページ(HTMLが主体)の作成および、テスト方法についての内容が多かった印象です。
railsのコードなどには深く触れませんでした)

ここまでは特につまづくこともなく進められていますが、はやり仕事が入ると進捗が悪くなってしまいますね・・・。

今月中に終われるように頑張ります。

例のごとく、3章終了時点のコードをGithubにあげておきますので、よければ参考になさってください。

github.com