This page looks best with JavaScript enabled

【Rails】#class_name を実行するためには pry-doc をインストールする必要がある

 ·  ☕ 1 分で読めます
✏️

本番環境では以下のようなエラーが出ました。

NoMethodError (undefined method `class_name' for #<Class:0x000000000c6fc208>)
Did you mean?  class_eval

ローカルでは実行できたので、検証してみました。

1
2
3
4
5
6
7
8
9
[1] pry(main)> user = User.first
  User Load (0.6ms)  SELECT `users`.* FROM `users` ORDER BY `users`.`id` ASC LIMIT 1
=> #<User id: 1, email: "test@example.com", name: "名前">
[2] pry(main)> user.class
=> User(id: integer, email: string, name: string)
[3] pry(main)> user.class.class_name
=> "User"
[4] pry(main)> user.class.name
=> "User"
1
2
3
4
5
6
7
8
9
From: /Users/k-end/repository_name/vendor/bundle/ruby/2.7.0/gems/yard-0.9.26/lib/yard/core_ext/module.rb:3:
Owner: Module
Visibility: public
Signature: class_name()
Number of lines: 3

def class_name
  name.split("::").last
end

class_nameというのは、gem "pry-doc"に依存しているメソッドのようでした。
確かにデバッグ用メソッドと言われるとそうだなと思いました。

Module#inspect (Ruby 3.0.0 リファレンスマニュアル)

参考

Share on

END
END
@aiandrox

目次