

パーフェクトRuby on Rails(初版)を写経しているのですが、6章のfind_by!とdestroy!の!の意味が分かりません。

ドキュメント  
<http://railsdoc.com/references/destroy>  
などを見ると  
!が付いていないfind_byやdestroyなどは見つかりますが、  
!がついたメソッドは見つかりません。  
また、find_by!やdestroy!の代わりにfind_by,destroyに変更した場合にイベントの参加キャンセル処理は正しく動作しているように見えます。

!がついていたらメソッドが見つからないエラーになるように思えるのですが、そうはならないようです。  
どういう仕組みになっているのでしょうか？

[code]

    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
    
[/code]


CC BY-SA 3.0
2016-05-22T03:20:17.690
25073
2016-05-22T03:41:28.090
8601
question
ruby-on-rails
rails4 find_by!とdestroy!の!の意味


自己解決しました。  
参照先のサイトはすべてのメソッドを網羅しているわけではないようです。

こちらのサイトではメソッド定義がありました。  
<http://api.rubyonrails.org>

どちらも処理が空振りだった時に例外を投げるようです。


CC BY-SA 3.0
2016-05-22T03:41:28.090
25074
2016-05-22T03:41:28.090
8601
25073
answer