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, скачайте исправленную версию здесь:

https://github.com/theworkinggroup/jrails

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".

Другие вопросы по тегам