rails4 find_by!とdestroy!の!の意味
パーフェクトRuby on Rails(初版)を写経しているのですが、6章のfind_by!とdestroy!の!の意味が分かりません。
ドキュメント
http://railsdoc.com/references/destroy
などを見ると
!が付いていないfind_byやdestroyなどは見つかりますが、
!がついたメソッドは見つかりません。
また、find_by!やdestroy!の代わりにfind_by,destroyに変更した場合にイベントの参加キャンセル処理は正しく動作しているように見えます。
!がついていたらメソッドが見つからないエラーになるように思えるのですが、そうはならないようです。
どういう仕組みになっているのでしょうか?
class TicketController < ApplicationController
before_action :authenticate
#...
def destroy
ticket = current_user.tickets.find_by!(event_id: params[:event_id])
ticket.destory!
redirect_to event_path(params[:event_id]), notice: 'このイベントの参加をキャンセルしました'
end
end