0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Railsチュートリアル第4章 push分振り返り

0
Last updated at Posted at 2021-03-15

組み込みヘルパー

Railsの組み込み関数stylesheet_link_tagを使って、
application.cssをすべてのメディアタイプで使えるようにしている。
stylesheet_link_tagを使って、application.cssをすべてのメディアタイプで使えるようにしている。

app/views/layouts/application.html.erb
<!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というヘルパーを作成する

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

作成したヘルパーを使って、レイアウトをシンプルにする

app/views/layouts/application.html.erb

変更前 <title><%= yield(:title) %> | Ruby on Rails Tutorial Sample App</title>
変更後 <title><%= full_title(yield(:title)) %></title>

Homeページのタイトル確認用にテストを更新

test/controllers/static_pages_controller_test.rb

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 の行削除

app/views/static_pages/home.html.erb

<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

~/.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で正常にコンソールを終了させることも可能。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?