Jquery ajax 和 Rails 3 -> 加载内容

11

我是ajax的初学者。我有一个滑块和一个内容div,滑块上有链接(事件、新闻等),我想创建ajax加载到内容div中(就像Facebook一样)。 我使用了Google搜索,但我发现的文章都很老(rails 2,但我用的是rails3)。 在Rails 3的教程书中有jQuery ajax与rails3,但它非常简短。

我现在的进展是:
我正在使用remote标签(:remote => true)设置我的表单,并将new.html.haml重命名为_new.html.haml部分。我认为我必须创建一个新的js.erb文件,其中包含:

$(".menuitem").load("<%= escape_javascript(render('article/new')) %>") .content"); //just an idea

我的逻辑正确吗?
如果你有关于 Rails 和 Ajax 的好教程或示例,请与我分享。

3个回答

9
最简单的方法是使用jQuery在你的.content元素上加载onclick事件:
$(".menuitem").click(function() {
  $(".content").load("/articles/new");
});

在您的控制器中呈现表单局部:

def new
  render :partial => 'form'
end

9

我建议使用jquery_ujs来处理此问题。

对于Rails 3.1+,只需在Gemfile中添加gem 'jquery-rails',并在您的application.js头部中添加//= require jquery_ujs

然后,使用:remote => true设置您的链接将使用Ajax调用href。

要将博客文章加载到您的#content div中,您可以创建一个show_post.js.erb文件来呈现您的文章(假设show_post是您使用的操作,并且您有一个“_content_post.html.haml”文件,用于显示博客文章内容):

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

希望这有所帮助。


3

2
感谢提供的链接!不过,我建议读者们更进一步,按照这里的“安装”说明安装JQuery gem:https://github.com/rails/jquery-ujs。在安装gem之前,请从您的application.rb文件中删除“config.action_view.javascript…”行,因为gem不需要它。 - Rick

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接