1

我试图按照 Grails In Action ( http://www.manning.com/gsmith2/GiA2E_meap_ch01.pdf )中的分步说明,以及第 1.5.1 节中解释的脚手架,第 1 页。21-23 似乎对我不起作用。

我按照建议添加static scaffold = true了。QuoteController.groovy然后grails run-app,当我前往时,我得到一个 404 错误(而不是 pdf 中的图 1.11),如下所示:localhost:8080/qotd/quote/list

HTTP Status 404 - /qotd/quote/list
type Status report
message /qotd/quote/list
description The requested resource is not available.
Apache Tomcat/7.0.42

这是QuoteController.groovy

包 qtd

类报价控制器 {
    静态脚手架 = true

    定义索引(){
        重定向(动作:“家”)
    }

    默认主页(){
        渲染“真正的程序员不吃乳蛋饼”
    }

    定义随机(){
        def allQuotes = Quote.list()
        def 随机报价
        def n = allQuotes.size()
        如果 (n > 0){
            def randomIdx = new Random().nextInt(n)
            randomQuote = allQuotes[randomIdx]
        } 别的{
            String str = "真正的程序员不吃乳蛋饼" + n
            randomQuote = new Quote(作者:“匿名”,
                    内容:str)
        }
        [引用:随机引用]
    }
}

但是,一切正常(与 pdf 中的图 1.12 匹配),我可以创建一个新报价。localhost:8080/qotd/quote/create

我使用的版本是
App 版本: 0.1
Grails 版本: 2.3.1
Groovy 版本: 2.1.8
JVM 版本: 1.7.0_45

这是 Grails 中的错误还是我遗漏了什么?

我是 Groovy 和 Grails 的新手,任何帮助都将不胜感激。谢谢!

4

2 回答 2

4

由于某种原因,列表操作已被删除。改用索引。

于 2013-10-27T06:19:26.437 回答
0

现在版本 2.4.2 有更多变化。以下 url 解释了脚手架是如何移动到插件模型的:

http://grails.org/doc/latest/guide/scaffolding.html

“从 Grails 2.3 开始,脚手架功能已移至插件中。默认情况下,它被配置为安装在新应用程序中,但如果您从以前版本的 Grails 升级,则需要将以下配置添加到您的 BuildConfig。好文件……”

因此,在该plugins { }部分内添加以下行:

compile ":scaffolding:2.0.0"

此外,如果数据库仍然为空,请使用“创建”操作强制将数据放入数据库。例如:

本地主机:8080/myapp/mycont/create

然后尝试查看是否可以加载它:

本地主机:8080/myapp/mycont/show/1

代替:

myapp --> with your application name (used in 'grails create-app')

mycont --> your controller name (used in 'grails create-controller')
于 2014-07-14T23:19:18.773 回答