У меня есть папка просмотра, которая содержит много файлов js.coffee, которые вызываются при выполнении различных действий контроллера. Он вызывается при отправке удаленной формы и запускается в контроллере строкой response_with. Я привожу метод создания в качестве примера. Важно отметить, что все это работает ОТЛИЧНО в режиме разработки. В процессе производства я позаботился о том, чтобы предварительно скомпилировать свои ресурсы, выполнил установку пакета --deployment и т. Д.
users_controller.rb
def create
@user = User.new(params[:user])
if @user.save
respond_with @user, :location => users_url #This line is throwing the error in production
end
end
Следующий Jquery должен быть выполнен после того, как запись сохранена, и это прекрасно работает в режиме разработки. Важно отметить, что запись создана, однако следующий файл никогда не выполняется
create.js.coffee
$('#errors').empty()
$('#errors').show()
<% if @user.errors.any? %>
$('<%= escape_javascript(render :partial => "errors", :locals => {:target => @user })%>')
.appendTo('#errors')
<% else %>
$('<%= escape_javascript(render(:partial => @user))%>')
.appendTo('#user_table')
.hide()
.fadeIn(200)
$('#errors').hide()
$('#new_user')[0].reset()
$('#users_count').html '<%= users_count %>'
<% end %>
$('#error_close').click ->
$('#errors').fadeOut()
Это ошибка, возникающая при производстве.
ActionView::MissingTemplate (Missing template users/create, application/create with {:locale=>[:en], :formats=>[:js, :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"
):
app/controllers/users_controller.rb:19:in `create'