miyamon_good’s blog

エンジニア×パチンコ・パチスロ

アプリケーション作成の備忘録

お久しぶりです。

アプリケーション作成が楽しくて、ブログまで手が回りませんでしたが

ここで一回エラー等の備忘録を作成しようと思います。

 

①Formオブジェクトについて(※私の認識です)

複数のテーブルに保存をする時に使う。

通常のやり方ではエラーハンドリングが処理しきれないので、

処理できるモデルのクラスを作ってインスタンスを渡そう!

ポイントは4つ。

1,attr_accessorで保存したいカラムを記入し属性として引数で渡す。

引数で渡したら、ストロングパラメーターで保存出来るように記入。

2,activeModel::Modelをincludeし、ActiveRecordを継承した他クラス同様に

インスタンスやクラスを使えるようにする。(≒Formオブジェクト生成)

3,使用するフォームでのバリデーションを記入。

4,それぞれのテーブルに保存する記述を書く。

 

JavaScriptが全てのページで発火しているエラー。

結論:発火するページを指定していなかった。

if(document.URL.match(/new/) || document.URL.match(/edit/)

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バイト以上は無理という表記があったおかげでたどり着けた。

 

まだまだありますが、以上。

毎日発見や学びがあって楽しいです。