[解決済み] Rubyでオブジェクトのすべてのメソッドをリストアップするには?
2022-06-23 22:14:19
質問
特定のオブジェクトがアクセスできるすべてのメソッドをリストアップするにはどうしたらよいですか?
私は
@current_user
オブジェクトがあり、アプリケーションコントローラで定義されています。
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
そして、ビューファイルで利用可能なメソッドを確認したいのです。具体的に言うと、私は
:has_many
がどのようなメソッドを提供するかを知りたいのです。(私は
:has_many
べき
を提供する必要がありますが、それを確認したい)。
どのように解決するのですか?
以下は、Userクラスが持つメソッドのうち、ベースとなるObjectクラスが持っていないメソッドの一覧です。
>> User.methods - Object.methods
=> ["field_types", "maximum", "create!", "active_connections", "to_dropdown",
"content_columns", "su_pw?", "default_timezone", "encode_quoted_value",
"reloadable?", "update", "reset_sequence_name", "default_timezone=",
"validate_find_options", "find_on_conditions_without_deprecation",
"validates_size_of", "execute_simple_calculation", "attr_protected",
"reflections", "table_name_prefix", ...
なお
methods
はクラスとクラスインスタンスのためのメソッドであることに注意してください。
以下は、私のUserクラスが持っている、ActiveRecordのベースクラスにはないメソッドです。
>> User.methods - ActiveRecord::Base.methods
=> ["field_types", "su_pw?", "set_login_attr", "create_user_and_conf_user",
"original_table_name", "field_type", "authenticate", "set_default_order",
"id_name?", "id_name_column", "original_locking_column", "default_order",
"subclass_associations", ...
# I ran the statements in the console.
Userクラスで定義された(多くの)has_many関係の結果として生成されるメソッドに注意してください。
ではなく
の結果で
methods
の呼び出しの結果ではありません。
追加
has_manyは直接メソッドを追加しないことに注意してください。その代わりに、ActiveRecordの機構はRubyの
method_missing
と
responds_to
のテクニックを使って、その場でメソッド呼び出しを処理することができます。その結果、メソッドは
methods
メソッドの結果には表示されません。
関連
-
[解決済み】Ruby: 特定のバージョンのruby gemをインストールする方法は?
-
[解決済み] Rubyのswitch文の書き方
-
[解決済み] Ruby on Railsのマイグレーションでデータベースのカラムの名前を変更するにはどうすればよいですか?
-
[解決済み] Rubyで配列に値が存在するかどうかを確認する方法
-
[解決済み] Rubyからシェルコマンドを呼び出す方法
-
[解決済み] Rubyでnilとemptyとblankを理解する方法
-
[解決済み] Rubyで文字列を小文字・大文字に変換する方法
-
[解決済み] Ruby on Railsで現在の絶対URLを取得するにはどうすればよいですか?
-
[解決済み] Rubyで乱数を取得する方法
-
[解決済み] Ruby on RailsでJSON出力を "きれい "にフォーマットする方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Bundler: コマンドが見つからない
-
[解決済み】取得中。「プロジェクトのクローンとマイグレート後に、「マイグレーションは保留中です。この問題を解決するには 'bin/rake db:migrate RAILS_ENV=development' を実行してください。
-
[解決済み】ActionController::InvalidAuthenticityTokenについて
-
[解決済み】bcrypt LoadError: Cannot load such file
-
[解決済み] Railsです。NameError: 初期化されていない定数
-
[解決済み] gemのインストールができない - gemネイティブ拡張の構築に失敗 - そのようなファイルをロードできない -- mkmf (LoadError)
-
[解決済み] RoRにおけるSpringサーバーの機能とは?
-
[解決済み] Rails / Haml: 投稿フォームを作成するには?
-
[解決済み] ActionController::RoutingError: 初期化されていない定数MicropostsController
-
[解決済み] rails/rubyでgroup_byを使用する。