Element.update не является функцией [Rails 3 + JQuery] - PullRequest
4 голосов
/ 30 августа 2010

Я пытаюсь интегрировать 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 ]

12 голосов
/ 31 августа 2010

Как уже говорили другие, page.replace в рельсах 2, ссылки Element.update.

Если вам нужны те же помощники, которые вам доступны в Rails 3 с jQuery, посмотрите jrails:

http://github.com/aaronchi/jrails

Если вы хотите использовать assert_select_rjs помощников по тестированию в Rails 3, перейдите по этой исправленной версии:

https://github.com/theworkinggroup/jrails

1 голос
/ 30 августа 2010

page.replace вызовет прототип функцию Element.update. У вас есть прототип на вашей странице?

0 голосов
/ 13 сентября 2012

Если это действительно Element.update вещь, использующая render(:update) в rails 3 с jQuery, этот маленький фрагмент кода js должен сделать это:

Element = function(){}
Element.update = function(id,html){$('#'+id).html(html);}

парсинг этого кода JS должен помочь. Я положил его в конец файла jquery_ujs.js.

0 голосов
/ 31 августа 2010

Я разобрался в проблеме. Очевидно, с JQuery, вы не можете использовать помощников рельсов, таких как "replace_html" или "insert_html". Вам просто нужно сделать страницу << "// Jquery code". </p>

...