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


前提について

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

開発するのは「有給休暇管理ツール」です。仕様は過去記事をどうぞ。

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

今回実施する内容

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

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

Railsの設定は順調!!

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

routes.rb
Rails.application.routes.draw do
  devise_for :users
  root 'branches#index'
  resources :branches, only: [:new, :create] 
end
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
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'
_mainheader.html.haml
.main__header
  .nav
    .ragistation
      = link_to new_branch_path, class: "link" do
        支社登録
                〜以下省略〜

実際のビューページ

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

データベースに保存されてない?

念のため、Postico(postgreSQLのクライアント)で、入力データを確認したら、なんとデータが空っぽ!!さっきまで順調にいっていたのに保存されてなかったの?
postgreSQLは、私にとって初めて使用するデータベースです。もちろん、Posticoも初めて。ローカルブラウザ上は、問題なく動いているので、postgreSQLの設定が正しいかしばらく格闘しました。

原因は、Posticoの設定

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

まずは、ビフォー。Userに「postgres」を入力した状態です。以前、MySQLのSequelProを使用していたときは、ユーザー名に「root」を入れて接続していたので、同じように設定したつもりでした。結果は、上のとおりです。

続いてアフター。Userを空欄に戻して、DatabaseにRailsでデータベースの生成を行った時のデータベース名「アプリケーション名_development」を入力したら、良かったようです。

保存データを確認

上の設定で、接続すると更新したデータがきちんと反映されていることが確認できました。これにて一件落着です。

今日の積み上げ

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