*この広告は、90日以上更新していないブログに表示しています。Rails通常Model内のエラーをControllerに渡す方法はWAFに組み込まれている。薄いWAFだとControllerとViewだけあって、Modelは好きに実装して下さいということが多い。得にPerlは軽量なWAFが多く、Mojoliciousのように薄くはないけどModel層がないものもある。したものならメソッドの戻り値で返してもいいと思うが、それが増えていくとController側でメソッド毎の戻り値のパターンを意識しないといけなくなるので、すぐに辛くなる。するかというと、大体Model内で$self->{errors}->{}のようなハッシュやエラー用のクラスを作って、そこへエラーを格納してControllerに戻すというケースが多いと思う。その際、エラーの有無を確認するメソッドや、メッセージを表示するメソッドが必要になるが、それがアプリケーション毎に違うとそれもそれで辛い。いうことを考えていたときに、ふと「Railsと同じI/Fだったら、(個人的に使う分には)わかりやすくていいかも」とActiveModel::Errorsのソースを読んでみると、基本的な機能は簡単に移植できそうだったので興味本位でPerlに移植してみた。https://github.com/nkwhr/ActiveModelLike-ErrorsActiveModel::Errorsの4.2.xをベースにしている。[]や[]=は同等のことを実現する方法がなさそうだったので(あったら教えてください)省いたのと、疑問符付きのメソッド名は一部変更している。Readableなメッセージに変換したりI18n対応を行っているが、その辺まで移植しようとするとキリがないので、割り切ってエラーを格納して返すだけのものにした。ActiveModelLike。各メソッドはREADMEかActiveModel::Errorsのドキュメントを見てもらった方が早いので省略。Mojoliciousの場合、以下のようにModelに組み込めばRailsっぽく使える。読者になる検索はてなブログをはじめよう!nkwhrさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。