Ruby on Rails 3 - 通过AJAX加载HTML通过RJS方式(jQuery + UJS)

问题描述:

我第一次使用Ruby on Rails(Ruby on Rails 3和Ruby 1.9.2)。Ruby on Rails 3 - 通过AJAX加载HTML通过RJS方式(jQuery + UJS)

到目前为止我非常喜欢它。我发现了一篇关于如何在Ruby on Rails 2.x中使用RJS的优秀文章。从那时起,rails开发人员已经移除了rails的Prototype依赖关系(这是一件好事)。但是,通过这样做,他们同样也删除了RJS功能和link_to_remote。现在,您应该使用link_to:remote => true作为参数,但它对于为远程设备执行远程操作的功能要少得多,就像rails 2.x中的link_to_remote方法+ render(:update)一样。我已经设置了jQuery for UJS(UJS是一种能够让你用你选择的JavaScript库制作类似RJS的特性(使你能够使用比Prototype更多的库))。

所以我的问题。

什么是通过AJAX远程获取HTML并将其呈现在div标签内的最佳方式(作为示例)?我希望能够使用与旧的RJS类似的功能,使用渲染(:更新)等。

非常感谢所有帮助。我真的希望,我不必手动绑定jQuery事件,因为RJS功能看起来非常好,所以能够将HTML远程加载到DOM中。

谢谢。

我通常所说的谐音从我js.erb文件:

$('#container').html("<%= escape_javascript(render(:partial => 'content')) %>"); 

以及适当的HTML我想在部分。

如果你有很少的html,它可能没有意义。在这种情况下,直接写入你的js.erb文件。

你可以看看这个简短的教程:http://blog.bernatfarrero.com/jquery-and-rails-3-mini-tutorial/

+0

非常感谢您的回答!你是救生员。 :-) – 2011-02-11 01:29:14

+0

不客气:) – apneadiving 2011-02-11 07:49:38

或者您可以使用RJS(Rails 3中仍然有RJS),但我更喜欢直接写入到js.erb的文件。

render :update do |page| 
    page.replace_html 'id_of_dom_obj', :partial => 'partial_path' 
end