8

Possiedo un'applicazione che funziona perfettamente in modalità sviluppo. Nel tentativo di testare in produzione in Webrick o Passenger/apache la maggior parte del mio sito si carica bene fino a quando non provo a inviare un modulo Ajax. Ho usato correttamente bundle install --deployment. Ho correttamente precompilato le mie risorse. Ma per qualche motivo ho riscontrato il seguente errore durante l'invio di moduli remoti. Tieni presente che l'ajax sta funzionando mentre crea i record nel database. Una cosa che trovo interessante è che sto usando un gemset con Ruby 1.9.3 ma sto ottenendo riferimenti a Ruby 1.9.1 in questi codici di errore. Sto anche includendo il controller Users in modo da poter vedere i riferimenti del controller. Aiuto!rails 3.2 ActionView MissingTemplate solo in produzione

Aggiornamento !! A seconda dell'azione da intraprendere, l'azione di modifica, l'azione di aggiornamento dell'azione o la distruzione dell'errore sono utenti/utenti di modelli o utenti/aggiornamenti o utenti/utenti di modifica/distruzione ecc. Leggi il commento sulla prima risposta come credo sia un problema con i file javascript non inclusi nel processo di precompilazione.

Started GET "https://stackoverflow.com/users/5" for 24.163.20.124 at 2012-02-07 03:30:09 -0500 
Processing by UsersController#show as HTML 
    Parameters: {"id"=>"5"} 
Completed 500 Internal Server Error in 58ms 

ActionView::MissingTemplate (Missing template users/show, application/show with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder]}. Searched in: 
* "/home/ctilley/Development/RatatouilleCatering/app/views" 
* "/home/ctilley/Development/RatatouilleCatering/vendor/bundle/ruby/1.9.1/gems/wash_out-0.3.1/app/views" 
* "/home/ctilley/Development/RatatouilleCatering/vendor/bundle/ruby/1.9.1/gems/ckeditor-3.7.0.rc2/app/views" 
): 
vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.0/lib/action_view/path_set.rb:58:in `find' 
vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.0/lib/action_view/lookup_context.rb:109:in `find' 
vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.0/lib/action_view/renderer/abstract_renderer.rb:3:in `find_template' 
vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.0/lib/action_view/renderer/template_renderer.rb:28:in `determine_template' 
vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.0/lib/action_view/renderer/template_renderer.rb:10:in `render' 
vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.0/lib/action_view/renderer/renderer.rb:36:in `render_template' 
vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.0/lib/action_view/renderer/renderer.rb:17:in `render' 
vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.0/lib/abstract_controller/rendering.rb:109:in `_render_template' 
vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.0/lib/action_controller/metal/streaming.rb:225:in `_render_template' 
vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.0/lib/abstract_controller/rendering.rb:103:in `render_to_body' 
vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.0/lib/action_controller/metal/renderers.rb:28:in `render_to_body' 
vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.0/lib/action_controller/metal/compatibility.rb:50:in `render_to_body' 
vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.0/lib/abstract_controller/rendering.rb:88:in `render' 
vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.0/lib/action_controller/metal/rendering.rb:16:in `render' 
vendor/bundle/ruby/1.9.1/gems/actionpack-3.2.0/lib/action_controller/metal/instrumentation.rb:40:in `block (2 levels) in render' 
vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.0/lib/active_support/core_ext/benchmark.rb:5:in `block in ms' 

controller/users_controller.rb

class UsersController < ApplicationController 

    before_filter :require_user 
    respond_to :html, :js 
    load_and_authorize_resource 
def index 
    @users = User.search(params[:search]).order(sort_column + " " + sort_direction).paginate(:per_page => 10, :page=>params[:page]) 

    authorize! :read, @article 
end 

def show 
end 

def create 
    @user = User.new(params[:user]) 

    if @user.save 
    respond_with @user, :location => users_url 
    end 
end 

def destroy 
    @user = User.find(params[:id]) 
    @user.destroy 

    respond_with @user, :location => users_url 
end 

def edit 
    @user = User.find(params[:id]) 
    respond_with @user, :location => users_url 
end 

def update 
    @user = User.find(params[:id]) 
    @user.update_attributes(params[:user]) 

    respond_with @user, :location => users_url 
end 
private 
def sort_column 
    params[:sort] || "id" 
end 
def sort_direction 
    params[:direction] || "asc" 
end 

end 

risposta

16

spostare i seguenti al di fuori del gruppo di asset nel vostro Gemfile

gem 'coffee-rails', "~> 3.2.1" 
gem 'uglifier', ">= 1.0.3" 
+0

Mi hai salvato la giornata. – methyl

+0

Grazie mille per questa risposta. Sono stato perplesso. –

+2

Qual è la spiegazione per questo? – Lyudmil

0
ActionView::MissingTemplate (Missing template users/show...) 

Ciò significa che il file vista app/utenti/show.html.erb manca. Crea qui un file fittizio e vedi se questo risolve il problema.

+0

Non sembra essere il caso. L'istruzione respond_with impone queste azioni all'indice. Tutto ciò funziona alla grande in modalità sviluppo come sopra indicato. Modifica, aggiornamento, creazione sono moduli remoti che chiamano il corrispondente index.js.coffee create.js.coffee update.js.coffee e destroy.js.coffee. Questi risiedono nella cartella di visualizzazione per quel particolare controller. Quello che sto pensando è che questi file javascript non vengono compilati durante il processo di precompilazione. Pertanto i record vengono pubblicati, ma il javascript non viene eseguito. Devo trovare un modo per aggiungere questi file al percorso di asset/precompilare. – ctilley79

Problemi correlati