[英]Rails/ruby undefined method
I have simple class with class's and private's methods 我有类和私有方法的简单类
class XmlConnection
def self.guitarmania
request = HTTParty.get(site_url)
handle_errors(request)
end
private
def handle_errors(request)
if request.code == 200
request
else
raise 'Connection error'
end
end
end
when i call XmlConnection.guitarmania
i get 当我打电话给XmlConnection.guitarmania
我得到了
NoMethodError: undefined method 'handle_errors' for XmlConnection:Class NoMethodError:XmlConnection的未定义方法'handle_errors':Class
How i can fix it? 我怎么解决它?
When you're using a self. 当你使用自我时。 for a class method, all private methods also need to use self to be accessed from within it. 对于类方法,所有私有方法也需要使用self来从中进行访问。 The following will work: 以下将有效:
class XmlConnection
def self.guitarmania
request = HTTParty.get(site_url)
handle_errors(request)
end
private
def self.handle_errors(request)
if request.code == 200
request
else
raise 'Connection error'
end
end
end
If all your methods will be class methods, you could wrap them all in a self to make it a bit more readable. 如果你的所有方法都是类方法,你可以将它们全部包装在一个自我中,以使它更具可读性。 This works exactly as above: 这完全如上所述:
class XmlConnection
class << self
def guitarmania
request = HTTParty.get(site_url)
handle_errors(request)
end
private
def handle_errors(request)
if request.code == 200
request
else
raise 'Connection error'
end
end
end
end
您还必须在类上定义handle_errors:
def self.handle_errors(request)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.