組み込みヘルパー
Railsの組み込み関数stylesheet_link_tagを使って、
application.cssをすべてのメディアタイプで使えるようにしている。
stylesheet_link_tagを使って、application.cssをすべてのメディアタイプで使えるようにしている。
<!DOCTYPE html>
<html>
<head>
<title><%= yield(:title) %> | Ruby on Rails Tutorial Sample App</title>
<%= csrf_meta_tags %>
<%= csp_meta_tag %>
<%= stylesheet_link_tag 'application', media: 'all',
'data-turbolinks-track': 'reload' %>
<%= javascript_pack_tag 'application',
'data-turbolinks-track': 'reload' %>
</head>
<body>
<%= yield %>
</body>
</html>
カスタムヘルパー
Railsのビューでは膨大な数の組み込み関数が使えるが、新しく作成することもできる。
新しく作ったメソッドはカスタムヘルパーと呼ばれる。
上のapp/views/layouts/application.html.erbにて、
<%= yield(:title) %> | Ruby on Rails Tutorial Sample Appの行がある。
title消しても、「 | 」が残る。
ページタイトルがうまく表示されない問題を解決するため、full_titleというヘルパーを作成する
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
作成したヘルパーを使って、レイアウトをシンプルにする
変更前 <title><%= yield(:title) %> | Ruby on Rails Tutorial Sample App</title>
変更後 <title><%= full_title(yield(:title)) %></title>
Homeページのタイトル確認用にテストを更新
require 'test_helper'
class StaticPagesControllerTest < ActionDispatch::IntegrationTest
test "should get home" do
get static_pages_home_url
assert_response :success
assert_select "title", "Ruby on Rails Tutorial Sample App"
end
以下省略
テストスイートを実行して、テストが失敗することを確認
$ rails test
3 tests, 6 assertions, 1 failures, 0 errors, 0 skips
provide の行削除
<h1>Sample App</h1>
<p>
This is the home page for the
<a href="https://railstutorial.jp/">Ruby on Rails Tutorial</a>
sample application.
</p>
これでテストはパスする。
$ git commit -am "Add a full_title helper"
$ git checkout master
$ git merge rails-flavored-ruby
文字列とメソッド
Ruby を学ぶためのツールとして、主にRailsコンソールを使っていく。
irb(IRB: Interactive RuBy)を拡張して作られているため、Rubyの機能をすべて使うことができる。
irbの設定ファイルを追加する
$ nano ~/.irbrc
IRB.conf[:PROMPT_MODE] = :SIMPLE
IRB.conf[:AUTO_INDENT_MODE] = false
Railsコンソールについて
デフォルトでは、コンソールはdevelopment(開発)環境という、
Railsによって定義された3種類の環境のうちの1つで起動する。
他の2つはtest(テスト)環境とproduction(本番)環境。
コンソールの中で何をしようとも、何かを壊すことはまずありえない。
もしRailsコンソールが何かおかしな挙動になったら、
Ctrl-Cでコンソールから強制的に抜け出したり、
Ctrl-Dで正常にコンソールを終了させることも可能。