2012-01-08 3 views
9

루어 1.9.3p0, 레일 3.1.2 생산 및 아파치와 함께.레일 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 assets :을 사전 컴파일하지만 아무 것도 변경되지 않습니다.

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

내부에 커피 레일 젬이있는 것이 커피 핸들러를 제공한다는 의미는 아닙니다. –

+0

템플릿에는 낙타 케이스를 사용하지 마십시오. Rails 규칙은 밑줄을 사용하는 것입니다. 'loadVideo' 템플릿은'load_video'이어야합니다. –

답변

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

나는 자산 네임 스페이스에서 커피 젬을 옮기면 똑같은 일을했다. 나는 대부분의 사람들이 단지 cofeescript를 자산에서 사용하고 뷰에서는 볼 수 없다고 생각합니다 ... 괴상한 것은 보석이 자산 블록에서만 지정되었을 때 개발 모드에서 작동한다는 것입니다. – hoyhoy