Edited at

Ruby on Rails チュートリアル 5.0(第4版) 第1章 演習と解答

More than 1 year has passed since last update.

Ruby on Rails チュートリアル 5.0(第4版)を学習中です。

演習問題を自分なりに実施しました。

もし間違い等あればコメントいただけると嬉しいです。


演習1.3.2


演習1.3.2.1

<問題>

デフォルトのRailsページに表示されているものと比べて、今の自分のコンピュータにあるRubyのバージョンはいくつになっていますか? コマンドラインでruby -vを実行することで簡単に確認できます。

<解答>

$ ruby -v

ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux]


演習1.3.2.2

<問題>

同様にして、Railsのバージョンも調べてみましょう。調べたバージョンはリスト 1.1でインストールしたバージョンと一致しているでしょうか?

<解答>

$ rails -v

Rails 5.0.1

1.1でインストールしたバージョンと一致しています。


演習1.3.4


演習1.3.4.1

<問題>

リスト 1.8のhelloアクションを書き換え、「hello, world!」の代わりに「hola, mundo!」と表示されるようにしてみましょう。

<解答>


application_controller.rb

class ApplicationController < ActionController::Base

protect_from_forgery with: :exception

def hello
render html: "hola, mundo!"
end
end



演習1.3.4.2

<問題>

Railsでは「非ASCII文字」もサポートされています。「¡Hola, mundo!」にはスペイン語特有の逆さ感嘆符「¡」が含まれています (図 1.13)17。「¡」文字をMacで表示するには、Optionキーを押しながら1キーを押します。この文字をコピーして自分のエディタに貼り付ける方が早いかもしれません。

<解答>


application_controller.rb

class ApplicationController < ActionController::Base

protect_from_forgery with: :exception

def hello
render html: "¡Hola, mundo!"
end
end



演習1.3.4.3

<問題>

リスト1.8のhelloアクションを参考にして、2つ目のアクションgoodbyeを追加しましょう。このアクションは、「goodbye, world!」というテキストを表示します。リスト 1.10のルーティングを編集して、ルートルーティングの割り当て先をhelloアクションからgoodbyeアクションに変更します (図 1.14)。

<解答>


routes.rb

Rails.application.routes.draw do

root 'application#goodbye'
end


application_controller.rb

class ApplicationController < ActionController::Base

protect_from_forgery with: :exception

def hello
render html: "¡Hola, mundo!"
end
def goodbye
render html: "goodbye!"
end
end



演習1.5.3

1.3.4.1と同じなので省略。


演習1.5.4


演習1.5.4.1

<問題>

heroku helpコマンドを実行し、Herokuコマンドの一覧を表示してみてください。Herokuアプリのログを表示するコマンドはどれですか?

<解答>

$ heroku help

Usage: heroku COMMAND [--app APP] [command-specific-options]

Primary help topics, type "heroku help TOPIC" for more details:

addons # manage add-on resources
apps # manage apps (create, destroy)
auth # authentication (login, logout)
config # manage app config vars
domains # manage domains
logs # display logs for an app
ps # manage dynos (dynos, workers)
releases # manage app releases
run # run one-off commands (console, rake)

Additional topics:

access # CLI to manage access in Heroku Applications
buildpacks # manage the buildpack for an app
certs # manage ssl endpoints for an app
drains # list all log drains
features # manage optional features
git # manage local git repository for app
help # list commands and display help
heroku # a topic for the ssl plugin
keys # manage authentication keys
labs # manage optional features
local # run heroku app locally
login # login with your Heroku credentials.
maintenance # manage maintenance mode for an app
members # manage membership in organization accounts
notifications # display notifications
orgs # manage organization accounts
pg #
pgbackups # manage backups of heroku postgresql databases
pipelines # manage collections of apps in pipelines
plugins # manage plugins to the heroku gem
redis # manage heroku redis instances
regions # list available regions
spaces # manage heroku private spaces
stack # manage the stack for an app
status # status of the Heroku platform
update # update the heroku client
version # display version

Herokuアプリのログを表示するには、上記中の「logs」ですね。

logs # display logs for an app

コマンドでいうと以下です。

$ heroku logs


演習1.5.4.2

<問題>

同じく、アプリの状態を調べるためのコマンドはどれですか? 直近に発生したイベントは何でしたか? (ちなみにこのログを調べるコマンドは、本番環境をデバッグするのに便利です)

<解答>

アプリの状態を調べるには以下を実行します。稼働状況がわかります。

$ heroku ps

=== web (Free): bin/rails server -p $PORT -e $RAILS_ENV (1)
web.1: up 2017/01/16 05:27:40 +0000 (~ 31m ago)

直近イベントは、人それぞれだと思います。

私の場合は以下の"goodbye"アクションの実行でした。

$ heroku logs

Processing by ApplicationController#goodbye as HTML


関連記事

Ruby on Rails チュートリアル 完全攻略 概要と演習解答総まとめ

http://mochikichi.hatenablog.com/entry/rails_tutorial_guide