【问题标题】:ActionView::MissingTemplate - but the template exists already?ActionView::MissingTemplate - 但模板已经存在?
【发布时间】:2011-12-29 04:57:45
【问题描述】:

我在 Rails 中遇到了一些路由问题。

我已经为Project 模型准备好了模型,所以我使用rails generate scaffold_controller 生成了一些默认控制器和视图,例如rails generate scaffold_controller Project。正如预期的那样,我现在有了一个默认控制器和相关的视图。

我的 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 等文件已经到位。我做错了什么?我是一个小菜鸟,所以任何提示都值得赞赏:)

编辑:项目内容#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

【问题讨论】:

  • 在 app/controllers/projects_controller.rb 中显示您的“显示”操作
  • @IgorKapkov 查看编辑
  • 试试rake routes并找到你的路线,/projects工作正常吗?
  • 默认情况下,错误消息的“搜索范围:”部分应指向您的视图文件夹,而不是像您的情况那样为空。恐怕我真的不知道是什么原因造成的。
  • @RB 你找到解决方案了吗?我面临同样的问题。如果您能分享解决方案,我将不胜感激。

标签: ruby ruby-on-rails-3 url-routing actionview rails-routing


【解决方案1】:

该问题与 Rails 3.1 中的 RJS 有关。删除这一行:

config.action_view.debug_rjs = true

来自environments/development.rb 修复了它。

我遇到了这个问题,因为我之前一直在 Rails 3.0 中进行开发,然后将我的 Rails 安装升级到了 3.1 版。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多