はじめに
Rails Tips の 39 回目です。昨日の lotfp
を使うことで、システム内のほとんどのリンクを簡単に記述できるようになりました。ただ、destroy
のリンクの場合には、ほとんどの箇所で確認を求める confirm
を記述しています。これを毎回記述するのも面倒なので、destroy
のものについては、専用の destroy_lotfp
ヘルパーを作成しました。
destroy_lotfp の使い方
昨日紹介したイベントの削除はパスとクラスを渡すだけです。
= destroy_lotfp teacher_event_path(event), Event
lotfp
と同様に locales に登録しているものと異なるリンクタイトルにしたい場合には title
を指定します。
= destroy_lotfp teacher_event_detail_path(event_detail), EventDetail, title: "解除"
destroy_lotfp の実装
destroy_lotfp
は lotfp
の method
が delete
になり、デフォルトで以前紹介した confirm_destroy で作成した確認メッセージを追加しているだけです。confirm_destroy
がモデルクラスからメッセージを作成するため、destroy_lotfp
もモデルクラスを引数に取っています。
# @param [String] path path 名 # @param [Class] model モデルクラス # @param [String, nil] title タイトル # @param [Hash] option 追加オプション def destroy_lotfp(path, model, title: nil, option: {}) lotfp path, :delete, title: title, option: option.merge(confirm_destroy(model)) end
おわりに
destroy_lotfp
のおかげで、確認のメッセージを出し忘れることがなくなりました。こちらも過去のリンクをこれに書き換えをしているところです。