ぞえの技術めも

Ruby on Rails勉強中

【18日目】【1日20分のRailsチュートリアル】第3章の演習とセットアップのコミット&第4章の始まり

Ruby on Railsチュートリアル(第3版)

今日は「第4章 Rails風味のRuby」から。

第3章ソースコードの整理

と、その前にブランチをmasterにする&「3.6 演習」と「3.7 高度なセットアップ」の内容をコミットしておきましょう。
(演習終わったあとにmasterに戻すべきだった…忘れてた…)

「3.6 演習」のコミット

コミットもせずブランチも戻さず作業したのでぐちゃぐちゃです。やってしまった…。
まとめてコミットすると演習の内容とセットアップの内容が混ざってしまうので、
面倒だけど1ファイルずつgit addします。
(同じファイルを更新するような内容じゃなくて良かった)

$ git add app/controllers/static_pages_controller.rb 
$ git add test/controllers/static_pages_controller_test.rb 
$ git add config/routes.rb 
$ git add app/views/static_pages/contact.html.erb   

4ファイルaddできたらgit commitしてリモートリポジトリにpush。

$ git commit -m "Add a Contact page (solves exercise 3.1,3.2)"
$ git push -u origin static-pages-exercises

「3.7 高度なセットアップ」のコミット

次はmasterに戻って「3.7 高度なセットアップ」の内容をコミットする。
リモートリポジトリにもpush。

$ git checkout master
$ git add -A
$ git commit -m "Add Advanced Setup"
$ git push

これでようやくインデックスがきれいになりました。
(実装終わったらこまめにコミットしよう。。。)

第4章 Rails風味のRuby

Ruby on Rails」向けのRubyの学習。

4.1 動機

Railsの組み込み関数について説明がありつつ、
まずカスタムヘルパー(Railsの関数?)を作成する方法を学習する。

作業用にブランチ作成しておく。

$ git checkout -b rails-ruby

タイトルタグを生成している下記コードに注目。

app/views/layouts/application.html.erb

<%= yield(:title) %> | Ruby on Rails Tutorial Sample App

今のままではtitleが定義されないと| Ruby on Rails Tutorial Sample Appなページタイトルになってしまう。(先頭に余計な|が付与される)
それを解消するためにヘルパーを作成する。

app/helpers/application_helper.rb

module ApplicationHelper
  # ページごとの完全なタイトルを返す
  def full_title(page_title = '')
    base_title = "Ruby on Rails Tutorial Sample App"
    if page_title.empty?
      base_title
    else
      page_title + " | " + base_title
    end
  end
end

full_titleヘルパーを使った形に書き換える。

app/views/layouts/application.html.erb

  <title><%= full_title(yield(:title)) %></title>

これでHomeページ(トップページ)に余計な単語("Home")なしでページタイトルを表示できるように。

中途半端だけど今日はここまで。 今日の作業時間は【34分】

次は「4.1 動機」のテスト作成するところから。