我创建了一个控制器和一个模型。控制器称为“Admin”,模型称为“Album”。我用适当的信息编辑了database.yml并执行了rake db:migrate命令,该命令没有返回任何错误并且在schema.rb中迁移了db。在控制器里面我写道:
class AdminController < ApplicationController
scaffold :album
end
接下来我启动了我的服务器并转到http://localhost:3000/admin但是没有看到典型的CRUD页面,而是出现以下错误:
app/controllers/admin_controller.rb:3 Request Parameters: None Show session dump --- flash: !map:ActionController::Flash::FlashHash
{}
Response Headers: {"cookie"=>[], "Cache-Control"=>"no-cache"}
知道为什么吗?
答案 0 :(得分:2)
脚手架的语法已经被弃用了很长一段时间。如今,rails(版本2.x)使用以下方法来构建资源:
script/generate scaffold Album title:string date:date ...
生成脚手架视图(在app / views中),控制器(app / controllers),标准测试(在test /中),以及关键的脚手架工作所需的路径。
我相信rails dev团队带走了旧的语法(“脚手架:资源”),因为没有真正的应用程序会使脚手架不受影响,即。你总是需要某种定制。使用新语法,可以保持不变,但也可以更容易地进行自定义。
如果您确实需要将控制器命名为admins,则可以在生成脚手架后更改文件config / routes.rb。但这没有意义:为什么要创建新专辑的URI被称为“/ admins / new”?
如果您正在尝试为图像相册应用创建管理区域,您可能正在寻找名称空间(因此您可以在“admin”命名空间内拥有多个不同的资源,控制器和视图)。要在admin命名空间中创建相册资源,请写:
script/generate scaffold Admin/Album title:string date:date
在这种情况下,您的控制器将可以http://host/admin/albums访问。
答案 1 :(得分:0)
答案 2 :(得分:0)