さまざまなコントローラアクションが実行されたときに呼び出されるjs.coffeeファイルが多数あるビューフォルダがあります。リモートフォームが送信され、コントローラ内でrespond_with行によってトリガーされたときに呼び出されます。私は例としてcreateメソッドを与えています。これはすべて、開発モードで完璧に機能することに注意することが重要です。生産では、私は、私は自分の資産をプリコンパイルしてきたことを確認したバンドルの記録が保存された後Rails 3.1 respond_withは本番では機能しません
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を実行すべき--deploymentなどインストールして走ってきました開発モードでは完全にそうです。ただし、以下のファイルが
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'