Ruby on rails 铁路救援命名错误替代方案
我正在创建一个应该在不同环境中运行的代码(每个环境的代码都有一点不同)。同一个类可能在其中一个类中定义方法,但在另一个类中不定义方法。这样,我就可以使用类似于:Ruby on rails 铁路救援命名错误替代方案,ruby-on-rails,exception,nomethoderror,Ruby On Rails,Exception,Nomethoderror,我正在创建一个应该在不同环境中运行的代码(每个环境的代码都有一点不同)。同一个类可能在其中一个类中定义方法,但在另一个类中不定义方法。这样,我就可以使用类似于: class User def name "my name" end end 救援命名错误 当方法未在某个特定类中定义时捕获事件,但捕获异常不是正确的逻辑流程 是否存在类似于present的替代方法,以了解该方法是否在特定类中定义?此类是服务,而不是ActionController 我的想法是: class User
class User
def name
"my name"
end
end
救援命名错误
当方法未在某个特定类中定义时捕获事件,但捕获异常不是正确的逻辑流程
是否存在类似于present的替代方法,以了解该方法是否在特定类中定义?此类是服务,而不是ActionController
我的想法是:
class User
def name
"my name"
end
end
然后
User.new.has_method?(name)
或者类似的东西。如图所示:它是对象上的一个方法。因此,它将检查该方法的任何对象,并使用true
或false
进行回复
class User
def name
"my name"
end
end
User.new.respond_to?(name)
将返回true
Rails有一个方法try
,该方法可以尝试使用某个方法,但如果该对象不存在该方法,则不会抛出错误
@user = User.first
#=> <#User...>
@user.try(:name)
#=> "Alex"
@user.try(:nonexistant_method)
#=> nil
@user=user.first
#=>
@user.try(:name)
#=>“亚历克斯”
@try(:不存在的_方法)
#=>零
您可能也在寻找类似method\u missing
,请查看这篇文章:如图所示:这是一个对象上的方法。因此,它将检查该方法的任何对象,并使用true
或false
进行回复
class User
def name
"my name"
end
end
User.new.respond_to?(name)
将返回true
Rails有一个方法try
,该方法可以尝试使用某个方法,但如果该对象不存在该方法,则不会抛出错误
@user = User.first
#=> <#User...>
@user.try(:name)
#=> "Alex"
@user.try(:nonexistant_method)
#=> nil
@user=user.first
#=>
@user.try(:name)
#=>“亚历克斯”
@try(:不存在的_方法)
#=>零
您可能也在寻找类似于
方法\u缺失的东西
,请查看这篇文章:这可能是
从上面的链接:您可以使用以下内容:
User.method\u已定义('name')
#=>正确
正如其他人所建议的,您可能希望查看缺少的方法:
类用户
定义名称
“我的名字”
结束
def方法_缺失(方法、*args和块)
将“您使用参数#{args.join(',')}调用了方法#{method}”
puts”--如果给定block_,是否也使用block?
结束
结束
User.new.last_name('Saverin'){'foobar'}
#=>“您使用参数Saverin调用了姓氏”
#=>“--您还可以使用块”
如果您不知道ruby元编程,您可以从开始,这可能是 从上面的链接:您可以使用以下内容:
User.method\u已定义('name')
#=>正确
正如其他人所建议的,您可能希望查看缺少的方法:
类用户
定义名称
“我的名字”
结束
def方法_缺失(方法、*args和块)
将“您使用参数#{args.join(',')}调用了方法#{method}”
puts”--如果给定block_,是否也使用block?
结束
结束
User.new.last_name('Saverin'){'foobar'}
#=>“您使用参数Saverin调用了姓氏”
#=>“--您还可以使用块”
如果你不知道ruby元编程,你可以从开始,你的意思是像
一些对象。响应到(:一些方法)
?或者对于类方法:一些类。响应到(:一些方法)
好吧,在apidock.com/rails/ActionController/MimeResponds/respond>中,他们提到了它的用途,但它不只是用于控制器?或者在这种情况下如何使用它?顺便说一句,我在服务上工作,不是在ActionControllerI,我不知道它是否适合你,因为你还没有发布任何代码。请阅读问题指南,并展示您的代码和用例。respond\u to?
是Ruby中的一种方法,因此它不仅仅用于视图。它可以在任何地方使用。你是说像some\u object.respond\u?(:some\u method)
?还是对于类方法:SomeClass.respond\u?(:some\u method)
,在apidock.com/rails/ActionController/MimeResponds/respond\u中,他们提到了它的用途,但它不仅仅是针对控制器的?或者在这种情况下如何使用它?顺便说一句,我在服务上工作,不是在ActionControllerI,我不知道它是否适合你,因为你还没有发布任何代码。请阅读问题指南,并展示您的代码和用例。respond\u to?
是Ruby中的一种方法,因此它不仅仅用于视图。它可以在任何地方使用。