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 3 years have passed since last update.

rails チュートリアル第3章 静的ページ

Posted at

インスタンスが消えたので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...をクリック
・最後は削除したいアプリの名前を入力して削除完了
よかった。

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?