Rails 3.1 respond_with在生产中不起作用

时间:2012-02-08 20:57:29

标签: ruby-on-rails-3.1 asset-pipeline production-environment assets ruby-on-rails-3.2

我有一个视图文件夹,其中包含许多js.coffee文件,这些文件在执行各种控制器操作时被调用。它是在提交远程表单时调用的,并由respond_with行在控制器中触发。我以创建方法为例。重要的是要注意所有这些在开发模式下都能完美地工作。在生产中,我已经确保我已经预编译了我的资产,运行了bundle install --demployment等。

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'

1 个答案:

答案 0 :(得分:0)

我终于明白了。将coffee-rails和uglifier从:assets组中取出来解决问题。