Я хочу создать пользовательское действие в Rails, которое будет обновлять представления и выводить некоторую информацию о div.
Я использую этот камень для загрузки файла: https://github.com/valums/file-uploader/blob/master/client/fileuploader.js
После успешной загрузки яЯ хочу обновить с помощью ajax-страницы, сколько миллисекунд требуется.
В старых Rails я написал бы это с помощью:
def set_tab
@diff = count_miliseconds_method
render :update do |page|
page.replace_html "place_menu", render( :partial => 'place_menu')
end
end
Но я не могу понять, как это сделать в Rails 3.1.
Мой код контроллера пользовательских действий:
def custom
[...] # Here everything works OK
start_time = Time.now
Some_method
end_time = Time.now
@diff = ((end_time - start_time)*100).to_i # counted miliseconds
respond_to do |format|
format.json {render :json => {:success => true, :time => @diff}, :status => :created, :location => custom_words_path}
end
end
Мой код custom.js.erb
var el = $('#upload-log');
el.append("#{@diff} ms");
К сожалению, это не работает.Я получаю ответ, например {"success":true, "time":324}
, но файл js.erb не выполняется, и страница не содержит информацию о миллисекундах.
Есть идеи, как это исправить?
Обновление
Github репо: https://github.com/there-is-no-spoon/Anagram