2012-01-08 16 views
9

Im przy użyciu Ruby 1.9.3p0, Rails 3.1.2 z Apache i pasażera w produkcji. Kiedy próbuję wykonać zdalną funkcję, to wyrzuca mi błąd:Rails 3 Coffee Handler Brakujący

ActionView::MissingTemplate (Missing template video/loadVideo, application/loadVideo with 
{:handlers=>[:erb, :builder], :formats=>[:js, "application/ecmascript", "application/x- 
ecmascript", :html, :text, :js, :css, :ics, :csv, :xml, :rss, :atom, :yaml, 
:multipart_form, :url_encoded_form, :json], :locale=>[:en, :en]}. Searched in 

Jak widać, nie ma obsługi dla : kawa, to jest powód dlaczego nie przetwarza plik wideo/loadVideo .js.coffee; Uruchomę komendę : aktywa rake: prekompilacja, ale nic się nie zmienia.

Gemfile źródło 'http://rubygems.org'

gem 'rails', '3.1.2' 

# Bundle edge Rails instead: 
# gem 'rails',  :git => 'git://github.com/rails/rails.git' 

gem 'will_paginate', '~> 3.0' 
gem "bcrypt-ruby", :require => "bcrypt" 
gem 'mysql' 

#Problems in Debian, the error was: 
#Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs #for a list of available runtimes. (ExecJS::RuntimeUnavailable) 
#Solution: http://stackoverflow.com/questions/6282307/rails-3-1-execjs-and-could-not-find-a-javascript-runtime 
gem 'execjs' 
gem 'therubyracer' 

# Gems used only for assets and not required 
# in production environments by default. 
group :assets do 
    gem 'sass-rails', '~> 3.1.5.rc.2' 
    gem 'coffee-rails', '~> 3.1.1' 
    gem 'uglifier', '>= 1.0.3' 
end 

gem 'jquery-rails' 

# To use ActiveModel has_secure_password 
# gem 'bcrypt-ruby', '~> 3.0.0' 

# Use unicorn as the web server 
# gem 'unicorn' 

# Deploy with Capistrano 
# gem 'capistrano' 

# To use debugger 
# gem 'ruby-debug19', :require => 'ruby-debug' 

group :test do 
    # Pretty printed test output 
    gem 'turn', '0.8.2', :require => false 
end 
+0

Posiadanie skarbnicy kawy w szynach nie oznacza, że ​​zapewnia obsługę kawy. –

+0

Proszę nie używać wielbłąda do szablonów. Konwencją Railsów jest użycie podkreśleń. Szablon 'loadVideo' powinien być' load_video'. –

Odpowiedz

13

Zmień Gemfile (move kawy szyn gem poza grupą aktywów) lub zmienić ustawienia environment.rb - na przykład

if defined?(Bundler) 
    # If you precompile assets before deploying to production, use this line 
    # Bundler.require(*Rails.groups(:assets => %w(development test))) 
    # If you want your assets lazily compiled in production, use this line 
    Bundler.require(:default, :assets, Rails.env) 
end 

W aplikacji środowiska deweloperskiego domyślnie ładowane są wszystkie klejnoty z grup :default, :development, :test, :assets. Ekspres do kawy pochodzi z klejnotu coffee-rails, więc musisz go załadować.

+2

Uderzyłem w to samo i zadziałało, gdy przeniosłem klejnot kawy z obszaru nazw aktywów. Sądzę, że większość ludzi używa tylko coffeescript w zasobach, a nie w widokach ... Dziwne jest to, że działało w trybie deweloperskim, kiedy Gem był określony tylko w bloku zasobów. – hoyhoy