Ruby on rails ActionView::Rails 3.1升级后缺少模板
升级到Rails 3.1.0及以下版本后,我的所有控制器都奇怪地无法再找到它们的视图Ruby on rails ActionView::Rails 3.1升级后缺少模板,ruby-on-rails,ruby-on-rails-3.1,actionview,missing-template,Ruby On Rails,Ruby On Rails 3.1,Actionview,Missing Template,升级到Rails 3.1.0及以下版本后,我的所有控制器都奇怪地无法再找到它们的视图 # 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
# 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\u 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
;它在升级之前工作)。我觉得这是一个愚蠢的错误,我在这里遗漏了什么?视图保存为erb,而不是haml?只是在黑暗中刺伤…看起来您忘记删除development.rb中的以下行:
config.action\u view.debug\u rjs=true
当不使用Rail Javascript时,应删除或注释掉此内容
有关升级的更多信息,请参阅rubyonrails.org上的“jQuery:newdefault”
就像汤姆说的那样,我本来忘了搬家
config.action_view.debug_rjs = true
在/config/environments/development.rb
中,但在我发布问题时,我已经做了
不过(相当愚蠢)的一点是,在更改配置参数后,我必须重新启动服务器。孩子们,当你们更改配置设置时,重新启动你们的服务器 我也犯了同样的错误,但原因不同。当我运行cucumber测试时,我将RAILS_ENV设置为development
export-RAILS\u-ENV=
或export-RAILS\u-ENV=test
修复了这个问题。RAILS-generate-controller-Welcome-index将生成控制器,我想这是生成控制器的最简单方法如果您升级的是自RAILS v1以来一直存在的旧应用程序,您可能有名为.rxml的xml模板。Rails 3.1(3.0中的版本)不再支持此功能,因此需要将其重命名为.builder
什么是:
units.xml.rxml
需要重命名为:
units.xml.builder
这将影响所有使用XML生成器的模板。e、 g.RSS、KML等我看到了这个问题,因为我的一些模板仍然被命名为
.rhtml
,而不是.erb.html
我在本地主机上没有遇到同样的错误,但我在Heroku上遇到了这个错误,原因很难理解。还有人看到这个吗?