【发布时间】:2020-03-10 01:13:42
【问题描述】:
我正在创建一个应该在不同环境中运行的代码(每个代码的差异很小)。同一个类可能在一个中定义一个方法,但在另一个中没有。这样,我可以使用类似的东西:
rescue NoMethodError
当方法未在某个特定类中定义时捕获事件,但捕获异常不是正确的逻辑流。
是否存在替代方法,例如 present 以了解该方法是否在特定类中定义?这个类是服务,不是ActionController
我在想这样的事情:
class User
def name
"my name"
end
end
然后
User.new.has_method?(name)
或类似的东西。
【问题讨论】:
-
你的意思是像
some_object.respond_to?(:some_method)吗? -
或者对于类方法:
SomeClass.respond_to?(:some_method) -
好吧,在 apidock.com/rails/ActionController/MimeResponds/respond_to 他们提到了它的用途,但它不仅适用于控制器吗?或者在这种情况下如何使用它?顺便说一句,我正在处理服务,而不是在 ActionController 中
-
我不知道它是否对你有用,因为你还没有发布任何代码。请阅读问题指南并展示您的代码和用例。
-
而
respond_to?是Ruby 中的一种方法,所以不,它不仅仅用于视图。它可以在任何地方使用。
标签: ruby-on-rails exception nomethoderror