2012-01-08 88 views
9

使用Ruby 1.9.3p0,Rails 3.1.2使用Apache和Passenger正在生產。當我嘗試做一個遠程功能,它拋出我這個錯誤:Rails 3咖啡處理程序丟失

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 

正如你所看到的,有沒有處理程序:咖啡,這就是爲什麼不處理文件視頻/ loadVideo的原因.js.coffee;我運行命令rake資產:預編譯但沒有任何變化。

的Gemfile中 源 '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

裏面的咖啡欄寶石並不意味着它提供了一個咖啡處理程序。 – 2012-01-09 01:24:43

+0

請不要使用駱駝案件模板。 Rails約定是使用下劃線。 'loadVideo'模板應該是'load_video'。 – 2012-01-09 14:50:35

回答

13

更改您的Gemfile(移動咖啡軌資產組之外寶石)或改變application.rb中設置 - 例如

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 

在開發環境應用程序默認加載所有寶石從:default, :development, :test, :assets組。咖啡處理程序來自coffee-rails寶石,所以你必須加載它。

+2

我碰到同樣的事情,一旦我將咖啡寶石移出資產命名空間,它就起作用了。我想大多數人只會在資產中使用咖啡腳本而不是在視圖中......奇怪的是,當Gem僅在資產塊中指定時,它在開發模式下工作。 – hoyhoy 2012-05-04 23:08:14