Rails 3.1升级后的ActionView :: MissingTemplate

时间:2011-09-04 12:05:04

标签: ruby-on-rails ruby-on-rails-3.1 actionview missing-template

升级到Rails 3.1.0并跟随David Rice's instructions后,我的所有控制器都不能再找到他们的意见了。

# rails s #

Started GET "/units" for 127.0.0.1 at 2011-09-04 07:52:23 -0400
  Unit Load (0.1ms)  SELECT "units".* FROM "units" 

ActionView::MissingTemplate (Missing template units/index, application/index with {:handlers=>[:erb, :builder], :formats=>[:html], :locale=>[:en, :en]}. Searched in:
):
  app/controllers/units_controller.rb:9:in `index'

units_controller.rb

  # GET /units
  # GET /units.xml
  def index
    @units = Unit.all

    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @units }
    end
  end

当然,视图在那里(/app/views/units/index.html.erb;它在升级之前工作)。我觉得这是一个愚蠢的错误,我在这里错过了什么?

7 个答案:

答案 0 :(得分:4)

您好像忘记在development.rb中删除以下行:

config.action_view.debug_rjs = true

不使用Rail Javascript时,应将其删除或注释掉。

有关升级的更多信息,请参阅rubyonrails.org上的“jQuery:New Default” http://weblog.rubyonrails.org/2011/4/21/jquery-new-default

答案 1 :(得分:2)

像汤姆说的那样,我原本忘了删除

config.action_view.debug_rjs = true

/config/environments/development.rb中,但在我发布问题的时候,我已经完成了。

虽然(非常愚蠢)但我必须在更改 config 参数后重新启动服务器。更改配置设置时重启服务器,孩子们!

答案 2 :(得分:0)

视图保存为erb,而不是haml?只是在黑暗中刺伤......

答案 3 :(得分:0)

我得到了同样的错误,但出于不同的原因。当我进行黄瓜测试时,我将RAILS_ENV设置为开发。

export RAILS_ENV=export RAILS_ENV=test解决了问题。

答案 4 :(得分:0)

rails生成控制器欢迎索引将生成控制器,我想这是生成控制器的最简单方法

答案 5 :(得分:0)

如果您要升级自Rails v1以来一直存在的旧应用程序,您可能会将xml模板命名为.rxml。 Rails 3.1(它在3.0中)不再支持它,因此需要将它们重命名为.builder。

是什么:

units.xml.rxml

需要重命名为:

units.xml.builder

这会影响使用XML构建器的所有模板。例如RSS,KML等。

答案 6 :(得分:0)

我看到了这个问题,因为我的一些模板仍然被命名为.rhtml而不是.erb.html