LoginSignup
0
0

More than 3 years have passed since last update.

Rubyのメソッドを調べる

Last updated at Posted at 2019-06-16

メソッド定義位置を調べたい

objct.method(:method_symbol_name).source_location 
#=> ["/path/to/the/file.rb",34]

オブジェクトのメソッドを調べたい

pry
ls -m object

こんなメソッドないかな?

Rails初心者だった頃は、クラスの定義だけでなく、継承やインクルード、method_missingで自動生成されたメソッドなどを使いたいときに、オブジェクトのメソッド一覧のうち、「これっぽい名前のメソッドないかな?」という感じで調べたいときは、これを使っていました。

object.public_methods.select{|m| m.to_s.include?('user') }

#=> 
[:autosave_associated_records_for_user,
 :build_user,
 :create_user!,
 :reload_user,
 :create_user,
 :user,
 :user=,
 :id_came_from_user?,
 :user_id=,
 :user_id_before_type_cast,
 :user_id_came_from_user?,
 :user_id?,
 :user_id_changed?,
 :user_id_change,
 :user_id_will_change!,
 :user_id_was,
 :user_id_previously_changed?,
 :user_id_previous_change,
 :restore_user_id!,
 :saved_change_to_user_id?,
 :saved_change_to_user_id,
 :user_id_before_last_save,
 :will_save_change_to_user_id?,
 :user_id_change_to_be_saved,
 :user_id_in_database,
 :role_came_from_user?,
 :created_at_came_from_user?,
 :user_id,
 :updated_at_came_from_user?]
0
0
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0