我在之前的问题中看到了有人评论说最好使用Prototype和Rails一起使用。然而,我的经验是JQuery是一个更优秀的JavaScript库。作为一个新手,我还没有研究如何在Rails中使用JQuery,但我认为这应该可以工作。这种组合可能存在问题吗?特别是在Ajax方面,我是否需要改用Prototype呢?
我在之前的问题中看到了有人评论说最好使用Prototype和Rails一起使用。然而,我的经验是JQuery是一个更优秀的JavaScript库。作为一个新手,我还没有研究如何在Rails中使用JQuery,但我认为这应该可以工作。这种组合可能存在问题吗?特别是在Ajax方面,我是否需要改用Prototype呢?
我在过去三年中一直使用Rails和(仅限)jQuery处理所有项目,到目前为止没有遇到任何(严重的)问题。
有一个名为jrails的插件,它可以作为prototype的即插即用替代品。
http://github.com/aaronchi/jrails/tree/master
更新:您可以使用它获取所有相同的默认Rails帮助程序,以实现javascript功能。
我在rails中同时使用jQuery和Prototype。jQuery用于DOM操作和thickbox(我最喜欢的灯箱插件),但我目前使用Prototype进行AJAX。没有特别的原因,只是还没有想使用jrails插件。我相信将来会这样做的。如果你也同时使用两者,以下代码应该放在你的head标签里:
<%= javascript_include_tag 'prototype' %>
<%= javascript_include_tag 'jquery' %>
<script type="text/javascript">
var $j = jQuery.noConflict();
</script>
然后使用带有 $j 的 jQuery。我在工作中使用jQuery和Rails,并且只有好的评价。我们也使用AJAX。唯一能想到的问题是,如果您同时使用jQuery和原型(prototype),则需要进行jQuery.noConflict()调用。
在Rails中使用jQuery不会有任何问题,只是它不是原生支持的JavaScript库。实际上,您并不需要使用Rails中的任何JavaScript内置函数,而且(默认情况下)应用程序的RESTful结构应该使AJAX变得简单。
使用prototype和scriptaculous,很多AJAX工作已经为您完成了。使用jQuery,您只需自己编写一些JavaScript代码。
Rails是为了与Prototype一起使用AJAX等技术而构建的,但你并不一定要使用Prototype。我个人是jQuery的粉丝,你完全可以在Rails中使用它。
你仍然可以使用jQuery来连接Rails中已完成的大量AJAX工作,没有问题。
正如kmorris所说,如果你在同一网站上同时使用jQuery和其他JavaScript库,请务必添加jQuery.noConflict()
代码行,否则会发生非常糟糕的事情。