Если оставить в стороне вопрос о том, разумно ли это сделать, ответ «возможно ли это» - «да»:
class QueryControllerApp
def self.call(env)
controller_name = env['QUERY_STRING'].split('=').last
controller = (controller_name.titleize.pluralize + "Controller").constantize
controller.action(:update).call(env)
rescue NameError
raise "#{controller_name} is an invalid parameter"
end
end
MyRailsApp::Application.routes.draw do
put 'posts/update/:id' => QueryControllerApp
end
По сути, картограф маршрута может принять любое приложение Rack в качестве конечной точки. Наше простое приложение анализирует строку запроса, создает имя контроллера и вызывает метод ActionController action
(который сам является приложением Rack). Не показано: как работать со строками запроса в любом формате, кроме 'o=<controller_name>'