ruby-on-rails – Rails3 ActionView模板处理程序在Production Server上不起作用

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – Rails3 ActionView模板处理程序在Production Server上不起作用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用的是Rails 3.2.3 / Ruby 1.9.3p125 / jbuilder(0.4.0)

在我的视图/ mycontroller文件夹中,我有一个show.json.jbuilder文件.
当我测试我的本地机器上的所有东西,轨道s -e生产一切都很好.
JSON被渲染为预期的.

但是当我部署到Ubuntu LTS(Nginx / unicorn)时,我会收到以下错误消息:

  1. ActionView::MissingTemplate (Missing template mycontroller/show,application/show with {:locale=>[:de,:en],:formats=>[:json],:handlers=>[:erb,:builder]}. Searched in:
  2. * "/home/deployer/apps/myapp/releases/#############/app/views"
  3. ):

当我检查我的服务器,如果jbuilder宝石安装与捆绑显示jbuilder一切似乎是对的.

奇怪的是,错误消息不显示:handlers => [:erb,:builder,:jbuilder]
jbuilder处理程序显然缺少.但是如何解决问题?

编辑:问题不是基于Jbuilder.我试过rabl,出现同样的问题.

有没有任何提示,如何调试?

这里有更多信息:

的Gemfile

  1. source 'https://rubygems.org'
  2.  
  3. gem 'rails','3.2.3'
  4. gem 'jquery-rails'
  5. gem 'MysqL2'
  6. gem 'simple_form'
  7.  
  8. # Gems used only for assets and not required
  9. # in production environments by default.
  10. group :assets do
  11. gem 'sass-rails','~> 3.2.3'
  12. gem 'coffee-rails','~> 3.2.1'
  13. gem 'uglifier','>= 1.0.3'
  14. gem 'bootstrap-sass','2.0.2'
  15. end
  16.  
  17. # Use unicorn as the app server
  18. gem 'unicorn'
  19.  
  20. # Deploy with Capistrano
  21. gem 'capistrano'
  22.  
  23. # for performance monitoring
  24. gem 'newrelic_rpm'
  25.  
  26. # use asset pipline and flash
  27. gem 'swf_fu','~> 2.0'
  28.  
  29. gem 'geocoder'
  30.  
  31. # To use Jbuilder templates for JSON
  32. gem 'jbuilder'

调节器

  1. def show
  2.  
  3. end

show.json.jbuilder – 文件

  1. json.(@map,:id)

解决方法

你的jbuilder似乎被跳过了.

jbuilder在你的Gemfile.lock文件

  1. cat Gemfile.lock | grep jbuilder

如果缺少:

  1. RAILS_ENV=production bundle update jbuilder

jbuilder是否可加载?

  1. RAILS_ENV=production bundle exec rails console
  2. > require 'jbuilder'
  3. => false # this is false if jbuilder is pre-loaded

你可以在控制台中建立

  1. > Jbuilder.encode{|j| j.foo :bar }
  2. => "{\"foo\":\"bar\"}"

你可以建立你的控制器行动吗?

  1. def the_method_you_are_testing
  2. raise Jbuilder.encode{|j| j.foo :bar }
  3. end

您是否看到与其他服务器设置相同的错误,例如Apache&乘客而不是Nginx&独角兽,还是简单的rails服务器?

  1. rails server -e production

如果您将服务器应用程序从生产更改为开发,是否得到相同的结果?

  1. rails server -e development

对于RABL,您可以尝试将RABL宝石最后放在Gemfile中吗?

  1. gem 'rails'
  2. #...
  3. gem 'rabl'

要求建筑师后立即注册

  1. require 'tilt'
  2. require 'rabl'
  3. # ...
  4. require 'builder'
  5. Rabl.register!

你会得到与RABL主人相同的结果吗?

  1. gem 'rabl',:git => "git://github.com/nesquena/rabl.git"

猜你在找的Ruby相关文章