インスタンスが消えたので3章からやり直しています。
##ほぼ静的なページの作成
静的なページとは、いつどこでアクセスしても毎回同じものが表示される
例 HTMLファイルで作成されたWebページのこと
動的ページとは、アクセスしたときの状況に応じて異なる内容が表示されるWebページのこと
例 ユーザーが書き込むことで内容が増える掲示板サイトやブログ、表示内容がユーザーごとに違うショッピングサイトや会員制サイトなど
###sample_appをセットアップ
sample_appを生成
rails _6.0.3_ new sample_app
sample_appの中のGemfileを書き換え
Gemfileを書き換えると下を行うらしい。
$ bundle install
production環境でしか使わないgemはインストールしないよにする
$ bundle install --without production
成功した。
####README.rbを書き直しをする
このアプリでの具体的な作業内容を書く
git remote add origin https://github.com/<あなたのGitHubアカウント名>/sample_app.git
GitHub上にリポジトリを作成のショートカットができる
git push origin master
リモートにもpush
READMEを編集する
git push origin master
編集したものをgithubで上書きする
# Cloud9 への接続を許可する
config.hosts.clear
この手順でCloud9の設定が終わる
####ここからsample_appのコードを書いていく
class ApplicationController < ActionController::Base
# 子と親の関係だった気がする
def hello
# helloアクション
render html: "hello, world!"
# htmlに""を出力させる
end
end
Rails.application.routes.draw do
# 何を書いているかはわからない
root 'application#hello'
# rootは流れだったような気がする
# applicationコントローラのhelloアクションを起こす
end
これでhello, world!が出力されると思う
$ git commit -am "Add hello"
$ git push
$ heroku create
$ git push heroku master
細かくデプロイすることでデバッグをしやすくなる
$ heroku logs # 直近のイベントを表示する
$ heroku logs --tail # イベント発生のたびに自動表示する(Ctrl-Cで終了)
Herokuに展開するときにエラーが発生した場合は、上のコマンドを実行して本番環境のログを取得。
このログは、問題を特定するときに役立ちます。
Railsのアクションは、コントローラの中に置きます
##静的ページ
ここからサンプルアプリケーションの開発に取りかかるらしい。
Railsのアクションやビューを使って静的なHTMLのみのページを作成し、
その後、静的なページを動的なページに作り変えていきます
git checkout -b static-pages
上をすることでページを改良するときに影響を与えないようにする
###静的なページの作成
scaffold生成に使った generate スクリプトで、コントローラを生成、コントローラ名を「Static Pages」に決める
コマンドラインでHomeページとHelpページ用のアクションもまとめて生成
アクション名はすべて小文字のhome、help、aboutにします。
rails generate controller StaticPages home help
$ git add -A
$ git commit -m "Add a Static Pages controller"
$ git push -u origin static-pages
単に次のコマンドを実行するだけで同じプッシュが行われるようになります
$ git push
home アクションと helpアクションを生成したので、routesファイルにはそれぞれのアクションで使われるルールが定義
Rails.application.routes.draw do
get 'static_pages/home'
# static_pagesコントローラからhomeアクションに紐付けされる
# getでアクセルすることでページを取得することができる
get 'static_pages/help'
root 'application#hello'
# rootは流れだったような気がする
# applicationコントローラのhelloアクションを起こす
end
StaticPagesコントローラは一般的なRESTアクションに対応していないことに注意してください。
static_pages_controller.rbはStaticPagesControllerというクラスを定義していることが分かる。
class StaticPagesController < ApplicationController
def home
end
def help
end
end
このようなクラスは、メソッド(関数とも呼ばれます)をまとめるときに便利な手法
StaticPagesControllerがApplicationControllerというRailsのクラスを継承している
StaticPagesControllerのメソッドは(たとえ何も書かれていなくても)Rails特有の振る舞いをします。
RailsはStaticPagesコントローラを参照し、homeアクションに記述されているコードを実行します。その後、そのアクションに対応するビューを出力します。
<h1>StaticPages#home</h1>
<p>Find me in app/views/static_pages/home.html.erb</p>
helpも同様にHTMLがある。
###静的なページの調整
<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>
リンクをつけると動的なページになるらしい。
###HTTPメソッド
Web上のデータを読み取る(get)ときに使われる。
POSTリクエストは何かを作成するときに使われる。
PATCHと DELETEという2つの操作があり、サーバー上の何かを更新したり削除するときに使われる。
しかしGETやPOSTほどは使われない。
###困ったこと
####herokuのアプリ削除
herokuのアプリを削除するためにクラウド9でやろうと思ったが
わからなかったのでサイトで削除できるか調べてみた。
・削除したいアプリをクリック
・移動した画面のsettingをクリック
・一番下までスクロールしてDelete app...をクリック
・最後は削除したいアプリの名前を入力して削除完了
よかった。