Glad it's working.
Prometheus treats empty string as label not being present at all, but it's not recommended to have inconsistent sets of labels on your metrics, as it makes them harder to aggregate over. A concrete value like "-" is better.
Beware including the request path in your metric. If the actual value supplied by the requestor is used, e.g.
http_requests{code="404",action="-",controller="-",path="/askdjnkj"} 1
then you put yourself at risk of a cardinality explosion. It's a very easy DoS attack vector - and even if unintentional, don't be surprised if people port-scanning your server try all sorts of paths. Sanitise the path label to permitted/expected values only, or leave it out (since the path has already been mapped to controller and action, right?)
If you do want to log the actual path presented, then really you need to use a logging system like Loki.