Tengo un método estático en una clase de dominio que devuelve una url. Necesito construir esa url dinámicamente pero g.link no está funcionando.No se puede usar grails g.link en la clase de dominio
static Map options() {
// ...
def url = g.link(controller: "Foo", action: "bar")
// ...
}
consigo los siguientes errores:
Apparent variable 'g' was found in a static scope but doesn't refer to a local variable, static field or class. Possible causes:
You attempted to reference a variable in the binding or an instance variable from a static context.
You misspelled a classname or statically imported field. Please check the spelling.
You attempted to use a method 'g' but left out brackets in a place not allowed by the grammar.
@ line 17, column 19.
def url = g.link(controller: "Foo", action: "bar")
^
1 error
Obviamente, mi problema es que yo estoy tratando de acceder g
del contexto estático, por lo que ¿cómo consigo alrededor de esto?
No haga esto en un ámbito estático. Use un método de instancia, o mejor aún, ponga este código en un servicio para que pueda ser inyectado. – OverZealous
No tengo una instancia en el momento en que estoy haciendo esto. – ubiquibacon
Sí, estoy de acuerdo con OverZealous. Realmente mala idea hacerlo de esta manera. – Gregg