アプリケーション作成の備忘録
お久しぶりです。
アプリケーション作成が楽しくて、ブログまで手が回りませんでしたが
ここで一回エラー等の備忘録を作成しようと思います。
①Formオブジェクトについて(※私の認識です)
複数のテーブルに保存をする時に使う。
通常のやり方ではエラーハンドリングが処理しきれないので、
処理できるモデルのクラスを作ってインスタンスを渡そう!
ポイントは4つ。
1,attr_accessorで保存したいカラムを記入し属性として引数で渡す。
引数で渡したら、ストロングパラメーターで保存出来るように記入。
2,activeModel::Modelをincludeし、ActiveRecordを継承した他クラス同様に
インスタンスやクラスを使えるようにする。(≒Formオブジェクト生成)
3,使用するフォームでのバリデーションを記入。
4,それぞれのテーブルに保存する記述を書く。
②JavaScriptが全てのページで発火しているエラー。
結論:発火するページを指定していなかった。
JavaScriptの文頭にifをつけることにより解決。
③クレジットカード決済の時のバリデーションについて。
結論:モデルでのバリデーションはtokenのみ。
JavaScriptによりDOMツリーの段階で、
フォーム読込→トークン生成→フォーム内容を空にする
流れが出来ているのでコントローラーまで運ばれるのはtokenのみになる。
④default:""とnull: falseについて
結論:バリデーションをかけるタイミングの違い。
null: falseはDB内のNULLを無くす。
presence: trueやdefault:""はモデルの段階でブロック。
⑤index: trueについて
結論:検索処理をやや早くすることが可能。
searchアクションを使う時等に出番があるかな?ぐらいの認識。
⑥入力内容は合っているがログインできない
結論:ログインフォームのモデルとurlが正常に設定できていない。
⑦デプロイ後の本番環境でstatus code500のエラー
結論:heroku run rails db:migrateを忘れていた。
⑧テストコード正常系と異常系について
正常系は、表面上で分かる範囲で、動作が動くことをテストする
異常系は、表面上で判断できないことやイレギュラーパターンについての実装条件についてテストする。なお、第三者が見て機能や特徴、性質が分かるようにするのが好ましい。
⑨正規表現が反映されずエラーが出る。(セキュリティ上よくないよ?的な文)
結論:アンカーをつけ忘れていた。
アンカーがないことにより正規表現のチェックが出来ず、全ての表現を許容する?認識をターミナル上で判断した為、セキュリティ上良くないよ?というエラーが発生した?
全てカタカナ、全てひらがな等にする場合は頭と語尾にアンカーを設定する必要あり。
⑩rails db:migrateが出来ない
結論:encodingのutf8mp4をutf8に変更するのを忘れていた。
rails db:mirate:resetした時にエラー文で767バイト以上は無理という表記があったおかげでたどり着けた。
まだまだありますが、以上。
毎日発見や学びがあって楽しいです。