[英]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实际上在这里起到了很多作用。
可能会打破两件事:
若要查看情况,请查看服务器输出或日志。 是否表明new_article_comment正在执行? 并显示“正在处理...作为JS”吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.