Jquery ajax和Rails 3 - >加载内容

Dod*_*djs 11 ajax jquery ruby-on-rails ruby-on-rails-3


我是ajax的初学者.我有一个滑块和一个内容div,滑块有链接(事件,新闻等),我想创建ajax加载到内容div(如Facebook).
我使用谷歌,但我发现很旧的文章(rails 2,但我使用rails3).
在Rails 3教程书中有jquery ajax和rails3,但它非常小.


我在这一点上:我用远程标签设置我的表单(:remote => true),然后我将new.html.haml重命名为_new.html.haml partial.我想我必须创建一个new.js.erb文件,其中包含:

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

我的逻辑是对的?
如果您有关于rails和ajax的好教程或示例,请与我分享.
谢谢

小智 9

最简单的方法是使用jQuery 加载.content元素onclick:

$(".menuitem").click(function() {
  $(".content").load("/articles/new");
});
Run Code Online (Sandbox Code Playgroud)

并在控制器中呈现部分表单:

def new
  render :partial => 'form'
end
Run Code Online (Sandbox Code Playgroud)


Lap*_*404 9

我想jquery_ujs用来处理这件事.

使用Rails 3.1+,只需添加gem 'jquery-rails'到您的Gemfile,并//= require jquery_ujs在你的application.js头.

设置链接:remote => true然后将使用Ajax调用href.

要将博客帖子加载到#contentdiv中,您可以创建一个show_post.js.erb来呈现您的帖子(假设show_post您使用的是操作,并且您有一个显示博客帖子内容的"_content_post.html.haml"):

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

希望这个帮助


Jam*_*mes 3

您需要为create.js.erbcreate.js.haml创建一个文件,因为它是正在处理的操作。

这是一个很好的教程:

http://net.tutsplus.com/tutorials/javascript-ajax/using-unobtrusive-javascript-and-ajax-with-rails-3/

注意:本文存在一个错误,即对escape_javascript 的调用将脚本中的S大写。

  • 感谢您的链接!不过,我想更进一步说,读者应该通过此处的“安装”说明安装 JQuery gem:https://github.com/rails/jquery-ujs。另外,在安装 gem 之前,请从 application.rb 文件中删除“config.action_view.javascript...”行,因为 gem 不需要它。 (2认同)