4

我正在尝试将 JQuery 集成到 Rails 3 中。我已经从http://github.com/rails/jquery-ujs下载了 rails.js 文件并将其包含在我的应用程序中。我还包括 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

4 回答 4

12

正如其他人所说,page.replace在 rails 2 中,引用Element.update.

如果您希望在 Rails 3 中使用 jQuery 提供相同的帮助器,请查看 jrails:

http://github.com/aaronchi/jrails

如果您想assert_select_rjs在 Rails 3 中使用测试助手,请在此处获取已修补的版本:

https://github.com/theworkinggroup/jrails

于 2010-08-31T16:58:12.147 回答
1

page.replace将调用原型函数Element.update。您的页面中是否包含原型?

于 2010-08-29T22:35:58.470 回答
0

如果它真的只是在带有 jQ​​uery 的 rails 3 中Element.update使用的东西,那么这个小 js 代码片段应该可以做到:render(:update)

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

解析这个 JS 代码应该会有所帮助。我把它放在jquery_ujs.js文件的末尾。

于 2012-09-13T09:02:57.583 回答
-3

我解决了这个问题。显然,使用 JQuery,您不能使用诸如“replace_html”或“insert_html”之类的 rails 助手。你只需要做页面 << "//Jquery 代码"。

于 2010-08-31T16:55:23.910 回答