繁体   English   中英

在Rails 3中使用“ Beginning Rails 3”的jQuery

[英]jQuery in Rails 3 with “Beginning Rails 3”

我正在学习如何在Carneiro和Barazi的“ Beginning Rails 3”中使用Rails。 最终目标是建立一个实用的博客。 本书面向Rails 3.0,并且我正在运行3.2,因此我在使用Prototype处理Ajax时使用jQuery。 有一次他们要求您从Processing切换到jQuery,但我跳过了。 后来,当他们开始使用js代码时,他们让您放了这段代码

<%= render @article %>
<h3>Comments</h3>
<div id="comments">
  <%= render @article.comments %>
</div>
<%= link_to "new comment", new_article_comment_path(@article, :format => :js), :remote => true, :id => 'new_comment_link' %>

进入“文章”视图,然后这段代码

$("<%= escape_javascript render(:file => 'comments/new.html.erb') %>").insertAfter('#comments');
$('#new_comment_link').hide();

放入new_comment视图中的javscript文件中,该文件在创建新注释时起作用。 其想法是,当您显示文章时,它会显示所有评论以及用于创建新评论的链接。 当您单击链接时,它将从new_comment视图中加载new_comment字段,而不是一直将它们放在那里。 但是,当我加载博客并单击“新评论”链接时,没有任何反应。 我尝试按照书中的说明进行操作(放入jquery.min.js文件,放入jQuery适配器),但它似乎不起作用(我认为不应将其放在开头) 。 有任何想法吗? 帮助将不胜感激。

1)您是否包含了jquery-rails gem? 它有助于将jquery固定在轨道上,并且您不需要自己手动添加jquery.min.js文件

2)您是否尝试过将警报放入javascript文件中以确保其完全运行?

3)您是否检查过开发日志以查看当它击中新的注释URL时会发生什么情况?

我已经花了三天时间调试类似的问题[1]:http://stackoverflow.com/questions/9666929/simple-rails-ajax-call-wont-process-as-js

首先,Rails 3.2使用了gem。 将其放在您的gemfile中并运行bundle install。

其次(如页面所示),尽管它们都是默认设置的,但您需要确保两者都包括在内:在app / assets / javascripts / application.js中,您应该

//= require jquery
//= require jquery_ujs

请注意,jquery-ujs实际上在这里起到了很多作用。

可能会打破两件事:

  1. 您的控制器可能未正确收到ajax请求
  2. 您的回应可能无效

若要查看情况,请查看服务器输出或日志。 是否表明new_article_comment正在执行? 并显示“正在处理...作为JS”吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM