Я бы не рекомендовал его для производственного кода, но он имеет смысл и, похоже, работает:
SELECT REGEXP_REPLACE(COLUMN,'[^' || CHR(1) || '-' || CHR(127) || '],'')
Вы хотите вызвать .name для класса объекта:
result.class.name
Оба result.class.to_s
и result.class.name
работают.
В моем случае, когда я использую что-то вроде result.class.name
, я получил что-то вроде Module1::class_name
. Но если мы хотим только class_name
, используйте
result.class.table_name.singularize
Вот правильный ответ, извлеченный из комментариев Даниэля Риковского и Псейдемана. Я устала от того, что надо проползать через комментарии, чтобы найти правильный ответ ...
Если вы используете Rails (ActiveSupport):
result.class.name.demodulize
Если вы используете POR (plain-ol-Ruby):
result.class.name.split('::').last
Если вы хотите получить имя класса из метода класса, class.name
или self.class.name
не будут работать. Они просто выведут Class
, так как класс класса - Class
. Вместо этого вы можете просто использовать name
:
module Foo
class Bar
def self.say_name
puts "I'm a #{name}!"
end
end
end
Foo::Bar.say_name
вывод:
I'm a Foo::Bar!
Можно использовать class
метод для получения класса любого объекта в рубине.
, например,
array= []
=> []
array.class
=> Array
hash = {}
=> {}
hash.class
=> Hash
string = 'This is String'
=> "This is String"
string.class
=> String