I have a create action that handles an AJAX request. On my development machine, a template named create.js.coffee is successfully processed to generate a javascript response. However, when I deploy to Heroku, the application complains that it can't find the template.
ActionView::MissingTemplate (Missing template /expenses/create with {:handlers=>[:erb, :builder], :formats=>[:js, :html], :locale=>[:en, :en]}. Searched in:
* "/app/app/views"
* "/app"
* "/"
):
It's clear that the coffee handler is not there to preprocess *.js.coffee template.
Can any one suggest how I can configure Heroku to recognize and process these templates?
Note: Heroku is successfully preprocessing my CoffeeScript files that are present in the asset pipeline.
I'm a bit late to the party, but here is my solution, as posted on Github.
I just ran into a problem where my create.js.coffee
file was working in development
but stopped working in production
(on Heroku). The logs show that Rails isn't even looking for a coffee handler:
2011-10-14T08:26:29+00:00 app[web.1]: ActionView::MissingTemplate (Missing template page_blocks/create, application/create with {:handlers=>[:erb, :builder, :haml], :formats=>[:html, :text, :js, :css, :ics, :csv, :xml, :rss, :atom, :yaml, :multipart_form, :url_encoded_form, :json], :locale=>[:nl, :nl]}. Searched in:
2011-10-14T08:26:29+00:00 app[web.1]: * "/app/app/views"
2011-10-14T08:26:29+00:00 app[web.1]: ):
This is the (important) part of my Gemfile:
group :assets do
gem "sass-rails", "~> 3.1.0"
gem "coffee-rails", "~> 3.1.0"
gem "uglifier"
gem "compass", "~> 0.12.alpha"
end
# asset templates
gem "jquery-rails"
gem "haml"
Only after I moved coffee-rails
outside of the :assets
group, things started working. Perhaps it would be a good idea to somehow make this clear in the readme, and perhaps even ship Rails with the coffee-rails
plugin being placed outside the assets
group.
I'm even later to the party, but I just had the same problem and there's a simple explanation:
The "assets" group of gems in the Gemfile are for development only. Heroku does not load these gems in production because it relies on its own stable versions for its Asset Pipeline.
If you're using a special gem that sounds like it's related to the asset pipeline but doesn't actually belong to a standard pipeline (e.g. the "coffeebeans" gem) you should keep that gem outside the "Assets" group.
I just tested this theory and it worked for me.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With