前提について
はじめまして、 プログラミングスクールに通ういりふねと申します。この記事は、スクールの課題である個人アプリの開発の記録を書くことで、自身のアウトプットに利用しています。もし、読んでいただけた方がいましたら、フィードバックをしていただけたら嬉しいです。
開発するのは「有給休暇管理ツール」です。仕様は過去記事をどうぞ。
アプリはデプロイまで行いますが、サービスとして提供するものではありません。あくまでも自学習の一環ですので、ご理解下さい。では本題へどうぞ。
今回実施する内容
前回までで、仮データを入れたビューが完成しました。今回は、支社の登録を行って、きちんとデータベースに反映されているかを確認します。
- ルーティングの編集
- 支社登録用のbranchコントローラーの作成
- 支社登録を行うビューページを作成
- メインページに支社登録へのリンクを作成
- ローカルブラウザから支社登録の実施
- データベースに保存されているか確認できればOK
Railsの設定は順調!!
ルーティングの編集、コントローラーの作成、ビューページ、メインページからのリンク付けなど、カリキュラムで学んだ内容なので順調に行えました。
Rails.application.routes.draw do
devise_for :users
root 'branches#index'
resources :branches, only: [:new, :create]
end
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
.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'
.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」を入力したら、良かったようです。
保存データを確認
上の設定で、接続すると更新したデータがきちんと反映されていることが確認できました。これにて一件落着です。
今日の積み上げ
今回は、自分であれこれ触っていたら、うまくいったので参考記事はありません。これ以降、参考記事をメモ帳に貼り付けるようになりました。