#はじめに
Rails初学者です。解説をして理解を深めるため書きました。
記載内容に間違いや、分かりづらい場合はコメントしていただけると幸いです。
Ruby on Rails チュートリアル 第一章
##演習1.3.2
####1.デフォルトのRailsページに表示されているものと比べて、今の自分のコンピュータにあるRubyのバージョンはいくつになっていますか? コマンドラインでruby -vを実行することで簡単に確認できます。
$ ruby -v
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]
'ruby -v'とコマンドを打つとバージョンの確認ができます。
####2.同様にして、Railsのバージョンも調べてみましょう。調べたバージョンはリスト 1.2でインストールしたバージョンと一致しているでしょうか?
$ rails -v
Rails 6.0.3
'rails -v'とコマンドを打つとバージョンの確認ができます。
##演習1.3.3
####1.リスト 1.9のhelloアクションを書き換え、「hello, world!」の代わりに「hola, mundo!」と表示されるようにしてみましょう。
def hello
render html:"hola,mundo!"
end
'hello,world!'を'hola,mundo!'に書き換えます。
※'hola,mundo!'とはスペイン語で直訳すると'こんにちは、世界'です。
####なぜ表示されるのか?
/app/views/layouts/applicationのbodyタグに<%= yield %>と書いてあります。
<!DOCTYPE html>
<html>
<head>
<title>HelloApp</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>
この中にhelloアクションの書き換えた'hola,mundo!'が置き換えられます。
<!DOCTYPE html>
<html>
<head>
<title>HelloApp</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>
hola,mundo!
</body>
</html>
そのため、ブラウザで'hola,mundo!'と表示されます。
####2.Railsでは「非ASCII文字」もサポートされています。「¡Hola, mundo!」にはスペイン語特有の逆さ感嘆符「¡」が含まれています(図 1.23)17 。「¡」文字をMacで表示するには、Optionキーを押しながら1キーを押します。この文字をコピーして自分のエディタに貼り付ける方が早いかもしれません。
def hello
render html:"¡Hola, mundo!"
end
####3.リスト 1.9のhelloアクションを参考にして、2つ目のアクションgoodbyeを追加しましょう。このアクションは、「goodbye, world!」というテキストを表示します。リスト 1.11のルーティングを編集して、ルートルーティングの割り当て先をhelloアクションからgoodbyeアクションに変更します(図 1.24)。
class ApplicationController < ActionController::Base
def hello
render html:"¡Hola, mundo!"
end
def goodbye
render html:"goodbye, world!"
end
end
Rails.application.routes.draw do
root 'application#goodbye'
end
application_controllerにgoodbyeアクションを追加し、ルーティングを'hello'から'goodbye'に変更することで、goodbyeアクションが処理されます。
##演習1.5.3
####1. "1.3.4.1と同じ変更を行い、本番アプリでも「hola, mundo!」を表示できるようにしてください。"
1.3.3の演習課題1に変更し、gitをadd,commit,pushし、Herokuにデプロイします
####2. "1.3.4.1と同様、ルートへのルーティングを変更してgoodbyeアクションの結果が表示されるようにしてください。またデプロイ時には、Git pushのmasterをあえて省略し、git push herokuでデプロイできることを確認してみてください。"
1.3.3の演習課題3に変更し、gitをadd,commit,pushし、Herokuにデプロイします。
gitに関してはこちらの動画がわかりやすいので参考にしてください。
【Git入門】サルでも分かるGit入門の前に!Git使い方高速入門編【入門は5分で十分だと思います】
##演習1.5.4
####1.heroku helpコマンドを実行し、Herokuコマンドの一覧を表示してみてください。Herokuアプリのログを表示するコマンドはどれですか?
$ heroku help
CLI to interact with Heroku
VERSION
heroku/7.47.11 linux-x64 node-v12.16.2
USAGE
$ heroku [COMMAND]
COMMANDS
access manage user access to apps
addons tools and services for developing, extending, and operating your app
apps manage apps on Heroku
auth check 2fa status
authorizations OAuth authorizations
autocomplete display autocomplete installation instructions
buildpacks scripts used to compile apps
certs a topic for the ssl plugin
ci run an application test suite on Heroku
clients OAuth clients on the platform
config environment variables of apps
container Use containers to build and deploy Heroku apps
domains custom domains for apps
drains forward logs to syslog or HTTPS
features add/remove app features
git manage local git repository for app
help display help for heroku
keys add/remove account ssh keys
labs add/remove experimental features
local run Heroku app locally
logs display recent log output
maintenance enable/disable access to app
members manage organization members
notifications display notifications
orgs manage organizations
pg manage postgresql databases
pipelines manage pipelines
plugins list installed plugins
ps Client tools for Heroku Exec
psql open a psql shell to the database
redis manage heroku redis instances
regions list available regions for deployment
releases display the releases for an app
reviewapps manage reviewapps in pipelines
run run a one-off process inside a Heroku dyno
sessions OAuth sessions
spaces manage heroku private spaces
status status of the Heroku platform
teams manage teams
update update the Heroku CLI
webhooks list webhooks on an app
herokuのログを確認するのは、'logs'です。
logs display recent log output
####2.上の演習で見つけたコマンドを使って、Herokuアプリの最近のログ(log)を調べてみましょう。直近に発生したイベントは何でしたか?(このログを調べるコマンドを覚えておくと、本番環境の不具合を見つけるときに役立ちます)
$ heroku logs
.
.
.
2021-01-30T21:29:08.679991+00:00 heroku[router]:
at=info method=GET path="/favicon.ico"
host=rails-tutorial-hello-2345.herokuapp.com
request_id=cf85211d-15c9-45b7-8bc5-bdfb4cd5f022
fwd="126.74.95.67" dyno=web.1 connect=0ms
service=1ms status=200 bytes=143 protocol=https
人によって変わります。僕はherokuにルーティングしたのが直近に発生したイベントでした。