Element.update не является функцией [Rails 3 + JQuery]
Я пытаюсь интегрировать JQuery в Rails 3. Я скачал файл rails.js с http://github.com/rails/jquery-ujs и включил его в свое приложение. Я также включил JQuery.
Но когда я пытаюсь сделать простой page.replace, например, так:
render :update do |page|
page.replace_html "my_div", :partial => "my_partial", :locals => {:mylocal => mylocal}
end
Я получаю следующую ошибку, возникающую при выполнении JavaScript:
RJS error:
TypeError: Element.update is not a function
Element.update("my_div", "mypartialdata");
Есть идеи?
4 ответа
Как уже говорили другие, page.replace
в рельсах 2, ссылки Element.update
,
Если вам нужны те же помощники, которые вам доступны в Rails 3 с jQuery, посмотрите jrails:
http://github.com/aaronchi/jrails
Если вы хотите использовать assert_select_rjs
помощники по тестированию в Rails 3, скачайте исправленную версию здесь:
page.replace
вызовет функцию прототипа Element.update
, У вас есть прототип, включенный в вашу страницу?
Если это действительно просто Element.update
вещь, использующая render(:update)
в rails 3 с jQuery этот маленький фрагмент кода js должен это сделать:
Element = function(){}
Element.update = function(id,html){$('#'+id).html(html);}
Разбор этого кода JS должен помочь. Я положил это в конце jquery_ujs.js
файл.
Я понял проблему. Очевидно, с JQuery, вы не можете использовать помощников рельсов, таких как "replace_html" или "insert_html". Вам просто нужно сделать страницу << "//Jquery code".