【发布时间】:2012-05-18 05:09:40
【问题描述】:
我正在使用 Rails 3.2.3 / Ruby 1.9.3p125 / jbuilder (0.4.0)
在我的view/mycontroller 文件夹中,我有一个show.json.jbuilder 文件。
当我使用rails s -e production 测试本地机器上的所有内容时,一切正常。
JSON 按预期呈现。
但是当我部署到 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"
):
当我检查我的服务器是否使用bundle show jbuilder 安装了 jbuilder gem 时,一切似乎都正确。
奇怪的是错误消息没有显示:handlers=>[:erb, :builder, :jbuilder]
jbuilder 处理程序显然丢失了。但是我该如何解决这个问题呢?
编辑:问题不是基于 Jbuilder。我试了rabl,出现同样的问题。
谁有提示,如何调试这个?
这里有更多信息:
宝石文件
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)
【问题讨论】:
-
你的 gem 文件是什么样的?
-
你不能分享一些源代码吗?从你说的话很难看出什么……
-
你有什么捆绑器版本(在你的生产机器上,但如果这与你的本地机器不同,那也很高兴知道)
-
我在生产和开发中都获得了 Bundler 1.1.3 版
-
只是一般假设,尝试两个终端命令: $ RAILS_ENV=production bundle update $ RAILS_ENV=production rake assets:precompile
标签: ruby-on-rails ruby production-environment actionview