首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将我的Rails 3应用程序从Prototype转换到jQuery的最新、最有效的方法是什么?

将我的Rails 3应用程序从Prototype转换到jQuery的最新、最有效的方法是什么?
EN

Stack Overflow用户
提问于 2011-02-11 03:03:18
回答 2查看 508关注 0票数 2

好吧,我以为我知道我在做什么,结果却被互联网上大量相互冲突的资源搞得不知所措。

我有一个rails 3应用程序。我想把prototype从这个应用程序中完全拿出来,只使用jQuery。其中一些代码位于rjs文件中,但大部分位于项目控制器中的format.js{}方法中。

我找到了this railscast,这使得我看起来可以对任何给定的操作执行以下操作:

代码语言:javascript
运行
复制
def action_name
    #do stuff
    respond_to do |format|
        format.js
        #format other types
    end
end

然后将我想要执行的jquery代码放在一个名为action_name.js.erb的文件中。

但是在从我的应用程序中删除prototype之后,我尝试这样做(将我的rails.js文件更改为jquery,并且在我的页眉中不包括prototype.js ),我得到了这个错误:

代码语言:javascript
运行
复制
 RJS error:

 TypeError: $ is not a function

为什么它试图调用rjs,却无法识别我的jquery?我是否应该使用rjs模板而不是.js.erb文件?我以为我从应用程序中删除了prototype --是不是漏掉了什么?

最重要的是,有没有一种明确的方法来完成从Prototype到jQuery的转换,并且到2011年2月为止,Rails 3的转换是最新的?我对最好的方法以及我应该使用什么(rjs文件或js.erb文件)感到困惑。

非常感谢,如果需要,我可以编辑更多的信息。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-15 11:02:07

对于Rails3,就像您所做的那样:在开发环境中安装足够的非侵入性jquery适配器,因为这只用于安装和删除js文件。

代码语言:javascript
运行
复制
gem "jquery-rails"

然后在bundlde安装之后运行

代码语言:javascript
运行
复制
bundlde install
rails generate jquery:install #--ui to enable jQuery UI --version to install specific version of JQuery (default is 1.5)

这会处理那些低调地挂接到html5标记上的jquery代码,比如远程ajax请求或远程提交。

为了使用rjs,应该重新定义默认的原型帮助器以发出jquery代码来实现这一点,使用jrails gem

代码语言:javascript
运行
复制
gem 'jrails', :git => 'https://github.com/theworkinggroup/jrails.git'

这会处理旧的原型函数,如观察表单、dom插入和替换方法等。

这样你就可以继续使用你的rjs temlates或者使用render :update来编写内联js。

可能是由于rjs的局限性(复杂的js仍然应该作为字符串写入页面resopnse),人们更喜欢js.erb,尽管它是地球上最丑陋的两种代码格式。

票数 3
EN

Stack Overflow用户

发布于 2011-02-11 03:12:00

你有没有看到:

https://github.com/rails/jquery-ujs

js.erb文件应该包含如下内容:

代码语言:javascript
运行
复制
<% if true? %>
$("#comment-notice").html('<div class="flash notice"><%= escape_javascript(flash.delete(:notice)) %></div>');
<% end %>

你最好删除所有的.rjs扩展

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4961438

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档