7

在升级到 Rails 3.1.0 并按照David Rice 的指示后,我所有的控制器都奇怪地找不到他们的视图了。

# 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; 它在升级之前工作)。我觉得这是一个愚蠢的错误,我在这里错过了什么?

4

7 回答 7

4

您似乎忘记在 development.rb 中删除以下行:

config.action_view.debug_rjs = true

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

有关升级http://weblog.rubyonrails.org/2011/4/21/jquery-new-default的更多信息,请参阅 ruby​​onrails.org 上的“jQuery:新默认值”

于 2011-09-07T19:07:21.240 回答
2

就像汤姆说的,我最初忘记删除

config.action_view.debug_rjs = true

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

但事情(很愚蠢)是我必须在更改配置参数后重新启动服务器。孩子们,当您更改配置设置时重新启动服务器!

于 2011-09-07T19:39:14.327 回答
0

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

于 2011-09-04T13:52:21.507 回答
0

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

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

于 2012-03-28T17:27:30.137 回答
0

rails generate controller Welcome index会生成控制器,我想这是最简单的生成控制器的方法

于 2013-03-16T15:55:45.280 回答
0

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

什么是:

units.xml.rxml

需要改名为:

units.xml.builder

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

于 2013-08-23T02:39:59.880 回答
0

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

于 2014-04-01T08:55:59.697 回答