2012-05-09 16 views
14

पर काम नहीं करता मैं उपयोग कर रहा हूँ रेल 3.2.3/रूबी 1.9.3p125/JBuilder (0.4.0)Rails3 ActionView खाका हैंडलर उत्पादन सर्वर

मेरी view/mycontroller फ़ोल्डर में मैं एक show.json.jbuilder फ़ाइल मिला है। जब मैं अपनी स्थानीय मशीन पर rails s -e production के साथ सब कुछ परीक्षण करता हूं तो सब ठीक काम करता है। JSON को अपेक्षित के रूप में प्रस्तुत किया जाता है।

लेकिन जब मैं Ubuntu LTS (nginx/गेंडा) को तैनात मैं निम्नलिखित त्रुटि संदेश:

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 मणि bundle show jbuilder सब कुछ के साथ स्थापित किया गया है सही लगता है।

अजीब यह है कि त्रुटि संदेश :handlers=>[:erb, :builder, :jbuilder] दिखाता नहीं है जेबिल्डर हैंडलर स्पष्ट रूप से गायब है। लेकिन मैं समस्या को कैसे हल करूं?

संपादित करें: समस्या जेबिल्डर पर आधारित नहीं है। मैंने रैबल की कोशिश की और एक ही समस्या प्रकट हुई।

क्या किसी के पास संकेत है, इसे कैसे डिबग करें?

यहां कुछ और जानकारी:

Gemfile

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) 
+0

क्या आपके मणि फ़ाइल कैसा दिखता है? –

+0

क्या आप कुछ स्रोत कोड साझा नहीं कर सकते? आपने जो कुछ कहा है उससे कुछ भी बताना मुश्किल है ... – DallaRosa

+0

आपके पास क्या बंडलर संस्करण है (आपकी उत्पादन मशीन पर, लेकिन यदि यह आपकी स्थानीय मशीन से अलग है, तो यह भी जानना अच्छा है) –

उत्तर

7

आपका जेबिल्डर छोड़ दिया गया प्रतीत होता है।

क्या आपके Gemfile.lock फ़ाइल में jbuilder है?

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 

, के रूप में इस तरह के Nginx & यूनिकॉर्न के बजाय अपाचे & यात्री, आप एक अलग सर्वर सेटअप के साथ एक ही त्रुटि दिखाई दे रही है या बस सर्वर रेल?

rails server -e production 

अगर आप विकास के लिए उत्पादन से अपने सर्वर ऐप्लिकेशन बदलने के एक ही परिणाम मिलता है?

rails server -e development 

Rabl के लिए, आप Rabl मणि पिछले अपने Gemfile में डालने की कोशिश कर सकते हैं?

gem 'rails' 
#... 
gem 'rabl' 

निर्माता की आवश्यकता के तुरंत बाद पंजीकरण करने का प्रयास करें?

require 'tilt' 
require 'rabl' 
# ... 
require 'builder' 
Rabl.register! 

क्या आपको आरएबीएल मास्टर के साथ एक ही परिणाम मिलते हैं?

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

सब कुछ मेरे स्थानीय मैशिन पर ठीक काम करता है। यह gemfile.log में भी है। आपके लिए धन्यवाद डिबगिंग टिप! – HaNdTriX

+0

क्या इन डीबगिंग युक्तियाँ आपके उत्पादन सर्वर पर सभी काम करते हैं? – joelparkerhenderson

+0

डीबगिंग टिप्स सभी मेरे लिए ठीक काम करते हैं, मुझे भी वही समस्या है। ऐसा लगता है कि ये टेम्पलेट इंजन – jamesc

4

समस्या लोड होने पर समस्या लोड के साथ समस्या होती है। यह JBuilder में तय किए जाने की जरूरत है, लेकिन यहाँ एक समाधान नहीं है:

Gemfile:

gem :jbuilder, :require=>false 

config/initializers/jbuilder.rb:

require 'jbuilder' 
+0

यह मेरे लिए हल हो गया। धन्यवाद – ksol

+0

यह मेरे लिए भी काम करता है .. यह अभी भी एक बात कैसे है? –

0

आप तो grape-jbuilder का उपयोग कर कर रहे हैं तो configu.ru में जोड़ने के लिए उनके सुझाव आपकी समस्या पैदा कर सकते हैं।

यदि आप रेल और अंगूर-जेबिल्डर का उपयोग कर रहे हैं, तो सुनिश्चित करें कि आपको अंगूर-जेबिल्डर सहित पहले रेल पर्यावरण की आवश्यकता है।

config.ru

require ::File.expand_path('../config/environment', __FILE__) 

require 'grape/jbuilder' 

use Rack::Config do |env| 
    env['api.tilt.root'] = 'app/views/api' 
end 

run Rails.application 
संबंधित मुद्दे