On Apr 17, 2012, at 7:33 AM, Wikus van de Merwe wrote: > Oh, so the default for functions is ALL_FUNCTIONS? In the comments it says: > "list of valid functions in the default controller (default None)". From that > I concluded (without testing I admit) that by default no function name will > be mapped unless explicitly specified. It make sense to map all functions by > default, but then the docs should be altered: > http://code.google.com/p/web2py/source/browse/router.example.py >
No, the default is None. There is no ALL_FUNCTIONS option because the router does not parse controllers to find its functions, which is what it'd have to do. The role of the functions list is to enable the router to omit the default function name from an outgoing URL even if there are args present. In order to do that safely (unambiguously), it needs to know what the possible function names are. So by default (functions=None), it never omits the function name if there are args present.