Your solution is the best one if you don't want to write code.
If you are willing to have a better solution, you may extend the provider for link to add the recursive attribute.
To do that, you can refer to opscode documentation that states:
Extending An Existing Provider
If you'd like to write a LWP that extends another provider class, you can accomplish that as a mixin, which you would then place in a library under the library directory of the cookbook using that extended class.
Your LWRP would then be written to include that library in the provider implementation to get access to the extended core resource. For an example, see the Transmission Cookbook, which includes a
transmission_torrent_file
LWRP that allows you to download a file via the BitTorrent protocol. Thistransmission_torrent_file
LWRP are an extension of the existing file and remote_file resources.