Consider:
db.recipe.category.requires=IS_IN_DB(db,'category.id','category.name')
The parameters are:
category.id
describes how the field will be represented in the databasecategory.name
describes how the field will be represented to the userFor example you can do things like:
requires=IS_IN_DB(db(db.category.name.like('d%')),
'category.id',
'Name: %(name)s, id: %(id)s any text your like')