前回までに、ユーザーデフォルトの設定が出来るようになったが、現状では入力された値のチェックはしていない。だから予想外の入力がされると、エラーが発生してしまう。入力値の検証機能(validate)が必要だ。 ところが、今回は複数のオブジェクトをyamlに変換して1つのフィールドに保存するようにしている。検証したいのはyamlに変換する前の個々のハッシュオブジェクトの値だ。こんな時はどのように処理するべきなのか?以下は、試行錯誤の結果、その処理方法のメモ。 エラーのチェック app/models/default.rb モデル(defaultテーブルを管理) 標準的なvalidate 値のチェックの対象がyamlフィールドそのものであれば、以下のように簡潔に表現することが出来る。(例:yamlフィールドはintegerタイプで、値が直接保存されると仮定して、1から100の範囲外の時はエラーにする
![フィールドが存在しない項目の検証(validate) - ザリガニが見ていた...。](https://cdn-ak-scissors.b.st-hatena.com/image/square/cb3eb02114389aab0e269288ff0276c1c6d9deca/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fz%2Fzariganitosh%2F20070519%2F20070519093027.png)