0

我正在阅读《Grails: A Quick-Start Guide》一书,但遇到了一个问题。这本书让我安装了 Blurb 插件,它似乎可以工作,但声明我们将使用它,就好像它是一个域类一样,并使用它作为一个预先存在的控制器。我要添加到控制器的代码如下所示

def blurb = Blurb.findByName("custom_${event.id}" )
if (!blurb){
    blurb = new Blurb(name:"custom_${event.id}" , content:"" ).save()
}

当我这样做时,我在 IDE 和运行输出中收到相同的错误

'无法解析类 Blurb ',我专门针对这一行blurb = new Blurb(name:"custom_${event.id}" , content:"" ).save()

谁能告诉我可能出了什么问题?我假设插件安装正确,因为如果我尝试直接访问它的控制器/操作“ http://localhost:8080/TekDays/blurb/create ”,插件提供的视图会正确呈现。

谢谢!

-- 作为参考,我使用的是 STS / Grails 1.3.7


更新 2011.05.12 上午 7:45 CST

我附上了一个屏幕截图,显示了我的 STS 界面中的项目,以显示我的项目在它与包相关的情况下是如何布局的,如 Burt 所示。但问题是我不确定如何处理导入语句,所以也许该屏幕截图会有所帮助。

这是仪表板控制器中的当前代码。

package tekdays

class DashboardController {
...
}

我已经尝试根据 Burt 的建议添加以下几行,但我显然不正确

package tekdays
package my.package  <--unexpected token: package

class DashboardController {

我尝试使用 tekdays 和 default 更改我的,并且都产生相同的结果。

我做错了吗?

谢谢!

Grails 截图

4

1 回答 1

0

Blurb 类在默认包中,因此如果您的控制器在包中,则需要使用 Groovy 技巧来访问它:

package my.package

import Blurb as Blurb

class MyController {

   def action = {
      def blurb = Blurb.findByName("custom_${event.id}" )
      if (!blurb) {
         blurb = new Blurb(name:"custom_${event.id}" , content:"" ).save()
      }
   }
}
于 2011-05-12T02:19:48.920 回答