423

ActiveRecord オブジェクトからクラス名を取得するにはどうすればよいですか?

私は持っている:

result = User.find(1)

私は試した:

result.class
# => User(id: integer, name: string ...)
result.to_s
# => #<User:0x3d07cdc>"

User文字列 (この場合)のクラス名のみが必要です。そのための方法はありますか?

これはかなり基本的なことですが、Rails と Ruby の両方のドキュメントを検索しましたが、見つかりませんでした。

4

5 に答える 5

785

オブジェクトのクラスで.nameを呼び出したい:

result.class.name
于 2009-05-05T18:15:23.580 に答える
128

Daniel Rikowski と pseidemann のコメントから抽出した正解です。正しい答えを見つけるためにコメントを整理するのにうんざりしています...

Rails (ActiveSupport) を使用する場合:

result.class.name.demodulize

POR (plain-ol-Ruby) を使用する場合:

result.class.name.split('::').last
于 2014-07-18T19:21:09.920 に答える
38

両方ともresult.class.to_s働きresult.class.nameます。

于 2009-05-05T20:47:45.850 に答える