Я не уверен, что это было реализовано, когда этот вопрос впервые был задан, но если вы хотите установить или переопределить :base_uri
для каждого запроса или для каждого экземпляра, методы HTTParty request (: get,: post,и т.д.) принять параметры для переопределения параметров класса.
Так что для примера OP это может выглядеть примерно так:
class Managementdb
include HTTParty
# If you wanted a default, class-level base_uri, set it here:
base_uri "http://games"
def self.login(game_name)
base_uri =
case game_name
when "game1" then "http://game1"
when "game2" then "http://game2"
when "game3" then "http://game3"
end
# To override base_uri for an individual request, pass
# it as an option:
response = get "/login", base_uri: base_uri
# ...
end
end
Динамический вызов метода класса, как предлагаетсяв некоторых других ответах изменяет base_uri для всех запросов, что, вероятно, не то, что вам нужно.Это, конечно, не потокобезопасно.