【開発ログ⑦】Posticoにデータがない事件

# 前提について
はじめまして、 プログラミングスクールに通ういりふねと申します。この記事は、スクールの課題である個人アプリの開発の記録を書くことで、自身のアウトプットに利用しています。もし、読んでいただけた方がいましたら、フィードバックをしていただけたら嬉しいです。

開発するのは「有給休暇管理ツール」です。仕様は[過去記事](https://qiita.com/iczo32/items/97ad7d4baa985b3b99ca)をどうぞ。

アプリはデプロイまで行いますが、サービスとして提供するものではありません。あくまでも自学習の一環ですので、ご理解下さい。では本題へどうぞ。

# 今回実施する内容
前回までで、仮データを入れたビューが完成しました。今回は、支社の登録を行って、きちんとデータベースに反映されているかを確認します。

- ルーティングの編集
- 支社登録用のbranchコントローラーの作成
- 支社登録を行うビューページを作成
- メインページに支社登録へのリンクを作成
- ローカルブラウザから支社登録の実施
- データベースに保存されているか確認できればOK

# Railsの設定は順調!!
ルーティングの編集、コントローラーの作成、ビューページ、メインページからのリンク付けなど、カリキュラムで学んだ内容なので順調に行えました。

```ruby:routes.rb
Rails.application.routes.draw do
  devise_for :users
  root 'branches#index'
  resources :branches, only: [:new, :create] 
end
```

```ruby:branches_controller.rb
class BranchesController < ApplicationController
  def index
    @branch = Branch.all
  end
  def new
    @branch = Branch.new
  end
  def create
    Branch.create(branch_params)
    redirect_to root_path
  end
  private
  def branch_params
    params.require(:branch).permit(:name).merge(user_id: current_user.id)
  end

end
```

```haml:new.html.haml
.branch__body
  新規支社登録
  .branch__body__form
    = form_for @branch do |f|
      .field
        .field-label
          = f.label "支社名"
        .field-input
          = f.text_field :name, autofocus: true
      .actions
        = f.submit "登録", class: 'btn'
```

```haml:_mainheader.html.haml
.main__header
  .nav
    .ragistation
      = link_to new_branch_path, class: "link" do
        支社登録
　               〜以下省略〜
```




# 実際のビューページ
<img width="295" alt="スクリーンショット 2020-05-12 18.19.12.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614723/681fa3df-cb00-6065-c34d-0df555fcef53.png">

ビューページも簡素ですが、表示されました。こちらは、メインのメージではないので、時間が空いたら、CSSを当てていきます。
さて、実際に登録すると、予想通りrootページに返ってきて一安心!!

# データベースに保存されてない？
念のため、Postico（postgreSQLのクライアント）で、入力データを確認したら、なんとデータが空っぽ！！さっきまで順調にいっていたのに保存されてなかったの？
postgreSQLは、私にとって初めて使用するデータベースです。もちろん、Posticoも初めて。ローカルブラウザ上は、問題なく動いているので、postgreSQLの設定が正しいかしばらく格闘しました。
<img width="572" alt="スクリーンショット 2020-05-12 18.25.19.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614723/fd14a5de-45aa-30b3-41de-cb2c3438d753.png">

# 原因は、Posticoの設定
上の画像で、「permission denied for table（テーブルの権限が拒否されました）」とあるので、ロールの作成ミスやデータベースの書込み権限の確認などを行っていましたが、結論はあっさりでした。
Posticoの接続設定でした。

まずは、ビフォー。Userに「postgres」を入力した状態です。以前、MySQLのSequelProを使用していたときは、ユーザー名に「root」を入れて接続していたので、同じように設定したつもりでした。結果は、上のとおりです。
<img width="654" alt="スクリーンショット 2020-05-12 18.45.56.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614723/001305f7-4be4-a0f9-4c2c-dc1fdb1dab64.png">

続いてアフター。Userを空欄に戻して、DatabaseにRailsでデータベースの生成を行った時のデータベース名「アプリケーション名_development」を入力したら、良かったようです。
<img width="651" alt="スクリーンショット 2020-05-12 18.49.25.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614723/d474ffdc-d66f-bb23-09d9-d540fde5ef0d.png">

# 保存データを確認
上の設定で、接続すると更新したデータがきちんと反映されていることが確認できました。これにて一件落着です。
<img width="702" alt="スクリーンショット 2020-05-12 18.51.42.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614723/e63c87ef-d5ff-717c-ac4d-4ca7412f77bc.png">

# 今日の積み上げ
今回は、自分であれこれ触っていたら、うまくいったので参考記事はありません。これ以降、参考記事をメモ帳に貼り付けるようになりました。