我使用的是rails 3.2.3/ruby 1.9.3p125/jbuilder(0.4.0)
在我的view/mycontroller文件夹中,我得到了一个show.json.jbuilder文件。
当我使用rails s -e production在本地机器上测试所有内容时,一切正常。
json被呈现为spected。
但是当我部署到ubuntu lts(nginx/unicorn)时,我得到了以下错误消息:

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

当我在服务器上检查jbuilder gem是否安装了bundle show jbuilder时,一切似乎都正常。
奇怪的是,错误消息没有显示:handlers=>[:erb, :builder, :jbuilder]
显然缺少jbuilder处理程序。但我该如何解决这个问题呢?
编辑:问题不是基于jbuilder。我试过拉贝尔,同样的问题出现了。
有人提示过,怎么调试?
这里有更多信息:
小精灵
source 'https://rubygems.org'

gem 'rails', '3.2.3'
gem 'jquery-rails'
gem 'mysql2'
gem 'simple_form'

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'uglifier', '>= 1.0.3'
  gem 'bootstrap-sass', '2.0.2'
end

# Use unicorn as the app server
gem 'unicorn'

# Deploy with Capistrano
gem 'capistrano'

# for performance monitoring
gem 'newrelic_rpm'

# use asset pipline and flash
gem 'swf_fu', '~> 2.0'

gem 'geocoder'

# To use Jbuilder templates for JSON
gem 'jbuilder'

控制器
  def show

  end

show.json.jbuilder-文件
 json.(@map, :id)

最佳答案

您的jbuilder似乎被跳过。
jbuilder在gemfile.lock文件中吗?

cat Gemfile.lock | grep jbuilder

如果它不见了:
RAILS_ENV=production bundle update jbuilder

jbuilder是否可加载?
RAILS_ENV=production bundle exec rails console
> require 'jbuilder'
=> false  # this is false if jbuilder is pre-loaded

你能在控制台中生成吗?
> Jbuilder.encode{|j| j.foo :bar }
=> "{\"foo\":\"bar\"}"

你能建立你的控制器动作吗?
def the_method_you_are_testing
   raise Jbuilder.encode{|j| j.foo :bar }
end

对于不同的服务器设置,比如apache&passenger而不是nginx&unicorn,或者仅仅是rails服务器,您是否看到了相同的错误?
rails server -e production

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

对于rabl,你能试着把rabl gem放在你的gemfile的最后吗?
gem 'rails'
#...
gem 'rabl'

请在要求生成器后立即尝试注册?
require 'tilt'
require 'rabl'
# ...
require 'builder'
Rabl.register!

你和拉布·马斯特的结果一样吗?
gem 'rabl', :git => "git://github.com/nesquena/rabl.git"

关于ruby-on-rails - Rails3 ActionView模板处理程序在生产服务器上不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10520269/

10-11 06:59