我遇到了一个问题,我需要检查类是否存在。但是,我将类传递给变量,并尝试从那里进行检查。
我的问题是我需要传递实际的常量才能使 defined?()起作用,但是我传递的是变量,因此与其看到一个常量,不如看到一个方法或变量。
<html></html>
是Rails模型实例,例如,特定的obj
或特定的User
。
Car
试探输出:
def present(obj,presenter_class=nil,view_context=nil)
klass = presenter_class || "#{obj.class}Presenter".constantize
if defined?(klass) == 'constant' && klass.class == Class
klass.new(obj,view_context)
else
warn("#{self}: #{klass} is not a defined class,no presenter used")
obj
end
end
我尝试了以下方法,但是我找到了一种方法...
[1] pry(ApplicationPresenter)> defined?(klass)
=> "local-variable"
如何解决此问题?