2012-01-08 26 views
9

Im sử dụng Ruby 1.9.3p0, Rails 3.1.2 với Apache và Passenger trong sản xuất. Khi tôi cố gắng để thực hiện một chức năng từ xa, nó ném cho tôi lỗi này:Rails 3 Coffee Handler Thiếu

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 

Như bạn thấy, không có handler cho : cà phê, đó là lý do tại sao không được xử lý tập tin video/loadVideo .js.coffee; Tôi chạy lệnh tài sản cào: biên dịch trước nhưng không có gì thay đổi.

Các Gemfile nguồn '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

Có đá quý bên trong không có nghĩa là nó cung cấp một bộ xử lý cà phê. –

+0

Vui lòng không sử dụng vỏ lạc đà cho mẫu. Quy ước Rails là sử dụng dấu gạch dưới. Mẫu 'loadVideo' phải là' load_video'. –

Trả lời

13

Thay đổi Gemfile của bạn (di chuyển cà phê-ray đá quý bên ngoài nhóm tài sản) hoặc thay đổi cài đặt application.rb của bạn - ví dụ

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 

Trong ứng dụng môi trường phát triển theo mặc định tải tất cả các đá quý từ :default, :development, :test, :assets nhóm. Bộ xử lý cà phê xuất phát từ đá quý coffee-rails, vì vậy bạn phải tải nó.

+2

Tôi nhấn cùng một điều và nó làm việc một khi tôi di chuyển viên đá quý cà phê ra khỏi không gian tên tài sản. Tôi đoán hầu hết mọi người chỉ sử dụng coffeescript trong tài sản và không phải trong quan điểm ... Điều kỳ lạ là, nó làm việc trong chế độ phát triển khi Gem chỉ được chỉ định trong khối tài sản. – hoyhoy