ActionView::MissingTemplate - 但模板已经存在?
我在 Rails 中的路由方面遇到了一些问题。
我已经为 Project
模型准备好了模型,因此我使用 railsgeneratescaffold_controller
生成了一些默认控制器和视图,例如 railsgeneratescaffold_controllerProject
>。正如预期的那样,我现在有了一个默认控制器和关联的视图。
我的routes.rb 文件包含:
resources :projects
当我尝试在浏览器中加载/projects/1 时,出现 MissingTemplate 错误。这是来自 Rails 服务器终端的转储:
Started GET "/projects/1/" for 127.0.0.1 at 2011-11-14 19:39:47 -0800
Project Load (0.3ms) SELECT `projects`.* FROM `projects` WHERE `projects`.`id` = 1 LIMIT 1
ActionView::MissingTemplate (Missing template projects/show, application/show with {:handlers=>[:erb, :builder], :formats=>[:html], :locale=>[:en, :en]}. Searched in:
):
app/controllers/projects_controller.rb:18:in `show'
这些是脚手架控制器/视图,因此已经有 /app/views/projects/show.html.erb 等文件。我做错了什么?我是一个 Rails 菜鸟,所以任何提示都值得赞赏:)
编辑:项目内容#show
# GET /projects/1
# GET /projects/1.json
def show
@project = Project.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @project }
end
end
I'm having some issues with routing in Rails.
I already have a model in place for a Project
model, so I generated some default controllers and views using rails generate scaffold_controller
, e.g. rails generate scaffold_controller Project
. As expected, I now have a default controller and the associated views.
My routes.rb file contains:
resources :projects
When I try to load /projects/1 in the browser, I get a MissingTemplate error. Here's the dump from the rails server terminal:
Started GET "/projects/1/" for 127.0.0.1 at 2011-11-14 19:39:47 -0800
Project Load (0.3ms) SELECT `projects`.* FROM `projects` WHERE `projects`.`id` = 1 LIMIT 1
ActionView::MissingTemplate (Missing template projects/show, application/show with {:handlers=>[:erb, :builder], :formats=>[:html], :locale=>[:en, :en]}. Searched in:
):
app/controllers/projects_controller.rb:18:in `show'
These are scaffolded controllers/views, so there are already files in place for /app/views/projects/show.html.erb, etc. What am I doing wrong? I'm a bit of a rails noob so any tips are appreciated :)
Edit: contents of projects#show
# GET /projects/1
# GET /projects/1.json
def show
@project = Project.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @project }
end
end
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
该问题与 Rails 3.1 中的 RJS 有关。 从
environments/development.rb
中删除此行:config.action_view.debug_rjs = true
修复了该问题。
我之所以出现这个问题,是因为我之前一直在 Rails 3.0 中进行开发,然后将我的 Rails 安装升级到了 3.1 版本。
The issue is connected with RJS in Rails 3.1. Removing this line:
config.action_view.debug_rjs = true
from
environments/development.rb
fixed it.The issue arose for me because I had previously been developing in Rails 3.0, then upgraded my Rails installation to version 3.1.