As in the title the question is what is best place to query data for g:select?
In the most examples you see something like:
<g:select name="country.id" from="${Country.list()}" optionKey="isoAlpha2" optionValue="id"/>
But normally this kind of code should be placed in the controller or better a service. So why are there so many tutorials and even project that do this query in the view?
The reason you see this example is because it requires less code to demonstrate. The correct approach is to have your controller build the model. This can be either through GORM queries or calls to services.