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
NoMethodError: undefined method 'handle_errors' for XmlConnection: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. 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)
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.