[学習記録]Ruby on RailsでのWebアプリケーション作成
勤務表作成アプリケーション
- フレームワーク: Ruby on Rails
- デプロイ先: Heroku
- 拡張機能
- Mailgun
- 拡張機能
学習内容
- Web application作成
- ユーザ認証機能の実装
- CRUD
- validation
- session
- remember digest
- friendly forwarding
- activation
- password reset
- HerokuでのSSL
- Herokuでのメール送信
- Mailgun
- 勤務表機能の実装
- ユーザモデルとの関係づけ
- berofe_actionでのアクセス制御
- ルート設定
- 複数データの一括CRUD
- Formモデルの作成
- parameterの取り出し
- validation
- クエリ
- 環境ごとのクエリの使い分け
- 画面作成
- form_withでの引数を伴った画面遷移
- Bootstrapの使用
- 登録データに描画内容を対応させる
- ユーザと描画内容を対応させる
- 休祝日の対応
- ヘルパーメソッドの使用
- ユーザ認証機能の実装
機能概要
- ユーザまわりの機能
- Ruby on Rails チュートリアル 第4版の第12章までに基づいて実装
- 学習メモの赤字部分を主に実施
- Ruby on Rails チュートリアル 第4版の第12章までに基づいて実装
勤務表まわりの機能
- 一括登録機能は→ こちら を参考に実装
- 登録済みの場合は登録画面を表示しないようにする
- 作成ボタンを表示しない & 画面以外から入ろうとしてもredirect_toで返す
- 日付は対象の年月から配列を作成して,valueに設定する
- 編集しないように,readonly: true, tabindex: -1を設定する
- 新規登録時は,年月と時間の既定値をフォームで送って設定できるようにする
- 一括更新
- 既存のデータのリンクのみ生成する
- ユーザモデルにクエリを実行するメソッドを追加して,それを呼び出す
- 各月の初日(1日)のデータのみ取得して,そこから年月を取得している
- 本番環境ではpostgresqlでextractを使えるが,ローカルのsqlite3では使えないため,環境によって分岐させている
- 各月の初日(1日)のデータのみ取得して,そこから年月を取得している
- default_scopeでorderを設定し,勤務日について昇順で並ぶようにする
- ユーザモデルにクエリを実行するメソッドを追加して,それを呼び出す
- paramsをhashに変換して,eachで1つずつvalueを取得し,update_attributes
- url, methodはyieldで取得するように変更
- 登録フォームをパーシャルに切り出して,登録・更新・参照で共用
- methodをputにすることでcontrollerのupdateを呼べるようになる
- 既存のデータのリンクのみ生成する
- 一括削除
- 対象のデータを取得して,1件ずつdestroy
- 既存のデータの削除リンクのみ生成する
- Formの基底を用意して,それを継承するcollectionクラスを作成する
- 作成・更新・参照画面では,collection クラスのインスタンスを生成
- form_for
- fields_for
- 作成・更新・参照画面では,collection クラスのインスタンスを生成
- 曜日・祝日の取得
- flashでメッセージを1度だけ表示
実装におけるtips