2011-06-14

ActiveScaffoldで削除するときに独自エラーメッセージを出す

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
ActiveScaffoldで削除をするときに
before_destroyで削除前にチェックをして条件を満たさないと削除できないようにしようと思ったわけです。
削除自体はできなくなるのですが、エラーメッセージが出なかったり、出たとしても
削除できませんでした。
な感じのそっけないメッセージになります。

できれば削除できない理由をちゃんとメッセージしたいなぁと思ったわけです。
まずエラーメッセージを出すようにするには
before_destroyの中で例外を発生させる必要があります。

でエラーメッセージですが、
do_destroyという関数を書けばよいようです。
以下のような感じです。
def do_destroy 
  destroy_find_record 
  begin 
    self.successful = @record.destroy 
  rescue Exception => ex 
    flash[:warning] = "オリジナルメッセージ"
    self.successful = false 
  end 
end

以下が参考になりました。
http://groups.google.com/group/activescaffold/browse_thread/thread/3af21f82c1695a57?pli=1
コメントを投稿