自作のアプリを作ってみる　その１

railsチュートリアルに沿って作成する。

###セットアップ
####アプリケーションを生成する
```
$ cd ~/environment
$ rails _6.0.3_ new my_app
$ cd my_app/
```
Gemfileについて書き方がわからないのでチュートリアルGemfileをコピペ

####アプリケーション用のGemfileを作成

####早速ホーム画面を作成してみる
１ページずつ作っていきたい。

#####ブランチを生成
```
$ git checkout -b home-pages
```


まずホーム画面だけを作る
####静的なページを生成
```rb
ubuntu:~/environment/my_app (home-pages) $ rails generate controller StaticPages home
warning ../../package.json: No license field                              
Running via Spring preloader in process 4952
      create  app/controllers/static_pages_controller.rb
      # static_pagesコントローラのファイル
       route  get 'static_pages/home'
　　　　　　　　　　　　# static_pagesコントローラにはhomeアクションがある
      invoke  erb
      create    app/views/static_pages
      create    app/views/static_pages/home.html.erb
      # ホーム画面のhtmlのファイル
      invoke  test_unit
      create    test/controllers/static_pages_controller_test.rb
      # static_pagesコントローラのテスト
      invoke  helper
      create    app/helpers/static_pages_helper.rb
　　　　　　　　　　　　# static_pagesのヘルパー
      invoke    test_unit
      invoke  assets
      invoke    scss
      create      app/assets/stylesheets/static_pages.scss
　　　　　　　　　　　　# static_pagesのscssのファイル
```
###困ったこと
解決済み

```
ubuntu:~/environment/my_app (static-pages) $ git commit -m "schema"
[static-pages 0bd227b] schema
 Committer: Ubuntu <ubuntu@ip-172-31-9-134.ap-northeast-1.compute.internal>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:

    git config --global user.name "Your Name"
    git config --global user.email you@example.com

After doing this, you may fix the identity used for this commit with:

    git commit --amend --reset-author

 1 file changed, 15 insertions(+)
 create mode 100644 db/schema.rb
```
エンバイロメントを消して新しく作り、GitHubのパスワードを再設定を行った。
それを行ったら、うまくpushできた。

####homeアクションを作成する
app/controllers/static_pages_controller.rb

```rb
class StaticPagesController < ApplicationController
  def home
  end
end
```

####ホーム画面に行くように設定する
config/routes.rb

```rb
Rails.application.routes.draw do
  root 'static_pages#home'
  # 最初にhomeに行くようにする
  get  'static_pages/home'
  # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html
end
```
サンプルアプリケーションのレイアウト
app/views/layouts/application.html.erb

```
<!DOCTYPE html>
<html>
  <head>
    <title><%= yield(:title) %> | 自作アプリ</title>
    <!--ページタイトルを設定-->
    <%= csrf_meta_tags %>
    <%= csp_meta_tag %>

    <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
  </head>

  <body>
    <%= yield %>
    <!--home.html.erbの内容を代入させる-->
  </body>
</html>
```

####homeアクションのhomeのhtmlを作成
app/views/static_pages/home.html.erb

```rb
<% provide(:title, "Home") %>
  <h1>自作アプリ</h1>
  <p>
    出来事を書いていこう。
  </p>
 
```

###static_pagesコントローラのテスト
test/controllers/static_pages_controller_test.rb

```rb
require 'test_helper'

class StaticPagesControllerTest < ActionDispatch::IntegrationTest
  
  test "should get root" do
    get root_url
    assert_response :success
  end

  test "should get home" do
    get static_pages_home_url
    # static_pages/homeをurlに入力してhomeページに行くことを要求する
    assert_response :success
    #その要求が成功しましたか？
    assert_select "title", "Home | 自作アプリ"
    # ページのタイトルがこれであっているか？
  end
end
```

この後サーバー起動
プレビューを確認
herokuにデプロイ

よかった。
これからも頑張りたい。