Rubyでメソッド一覧を確認するmethodsメソッドが便利
例えば、destroy!
メソッドってあったっけ?みたいな場合など、
rubyでメソッド一覧を調べたいときにはmethods
メソッドを使います。
sort
やgrep
と組み合わせるとなお良しです。
使用出来るメソッド一覧を表示する
@bbs = Bbs.new pp @bbs.methods
--------------出力結果-------------- [:_run__3416252266121788162__initialize__4586295953617865946__callbacks, :id, :id=, :id_before_type_cast, :id?, :id_changed?, :id_change, :id_will_change!, :id_was, :reset_id!, :name, :name=, :name_before_type_cast, ...
メソッド一覧をソートして表示する
@bbs = Bbs.new pp @bbs.methods.sort
--------------出力結果-------------- [:!, :!=, :!~, :<=>, :==, :===, :=~, :Factory, :[], :[]=, :__binding__, :__id__, :__send__, :_accessible_attributes, ...
一覧からdestroyを含むメソッドだけ抽出して表示する
@bbs = Bbs.new pp @bbs.methods.grep(/destroy/)
--------------出力結果-------------- [:_destroy_callbacks, :_destroy_callbacks?, :_destroy_callbacks=, :destroy, :_destroy, :destroyed?]
結果からdestroy!
メソッドなんてないことがわかります。
なお、
% ./script/rails console
を使うとコンソールから実行できるのでこういうチェックなどに便利です。