リモートアクションの1つに奇妙な問題があります。フォームからアップロードされたCSVファイルを解析したいのですが。CSVファイルは正しく解析されており、約20秒かかります(CSVファイルにはダウンロードリンク付きのURLが含まれているため、問題ありません)。解析が成功した後、ビューが表示されません。面白いことに、フォームでcsvファイルが選択されていない場合にビューがレンダリングされます。
#Products Controller:
def get_imported
p=Product.new
@tab = nil
@tab = p.import_csv(params[:product][:csv_file],params[:product][:source]) unless params[:product][:csv_file].nil?
end
#app/views/products/get_imported.js.coffee view:
$('#results').html '<br/><div class="alert alert-info">
<h4 class="alert-heading">Imported products:</h4>
<% if @tab.blank? %>
Error: No CSV file
<% else %>
<% for element in @tab %>
<%= @tab.name %><br/>
<% end %>
<% end %>
</div>'
csvファイルを選択してフォームを送信すると、次のエラーが表示されます。
ActionView::MissingTemplate (Missing template products/get_imported, application/get_imported with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee]}. Searched in:
* "/home/chmarus/Pulpit/test/app/views"
* "/home/chmarus/.rvm/gems/ruby-1.9.3-head/gems/twitter-bootstrap-rails-2.1.0/app/views"
* "/home/chmarus/.rvm/gems/ruby-1.9.3-head/gems/devise-2.1.2/app/views"
* "/home/chmarus/.rvm/gems/ruby-1.9.3-head/gems/ckeditor-3.7.1/app/views"
):
レールがこのテンプレートを見つけられない理由がわかりません。ファイルが選択されていない場合、アラートは同じファイルから正しくレンダリングされます。