ActionView::MissingTemplate - 但模板已经存在?

发布于 2024-12-15 13:20:29 字数 1164 浏览 4 评论 0原文

我在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

吾性傲以野 2024-12-22 13:20:31

该问题与 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文