gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 20:18:49 25 4
gpt4 key购买 nike

好吧,我以为我知道我在做什么,相反,我对互联网上大量相互冲突的资源感到非常困惑。

我有一个 Rails 3 应用程序。我想完全从这个应用程序中取出原型(prototype),只使用 jQuery。部分代码位于 rjs 文件中,但大部分位于项目 Controller 中的 format.js{} 方法中。

我找到了 this railscast ,这让我似乎可以对任何给定的操作执行以下操作:

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),但我收到了这个错误:

 RJS error:

TypeError: $ is not a function

为什么它试图调用 rjs 而没有识别我的 jquery?我应该使用 rjs 模板而不是 .js.erb 文件吗?我以为我从我的应用程序中删除了原型(prototype) - 我错过了什么吗?

最重要的是,截至 2011 年 2 月,对于 Rails 3,是否有一种确定的方法来完成从 Prototype 到 jQuery 的最新转换?我对执行此操作的最佳方法以及我应该使用的内容(rjs 文件或 js.erb 文件)感到很困惑。

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

最佳答案

至于 rails 3像你一样:在开发环境中安装足够的不显眼的 jquery 适配器,因为它仅用于安装和删除 js 文件

gem "jquery-rails"

然后在 bundlde install 运行之后

bundlde install
rails generate jquery:install #--ui to enable jQuery UI --version to install specific version of JQuery (default is 1.5)

这处理了 jquery 代码,它以不显眼的方式卡在 data-html5 标签上,例如 remote ajax请求或远程提交。

为了使用 rjs,应该重新定义默认的原型(prototype)助手以发出 jquery 代码为此,请使用 jrails gem

gem 'jrails', :git => 'https://github.com/theworkinggroup/jrails.git'

这会处理旧的原型(prototype)功能,例如观察表单、dom 插入和替换方法等。

有了这个,你可以继续使用你的 rjs 模板或使用 render :update 编写内联 js

可能是因为rjs的限制(再复杂的js还是应该写成字符串到页面resopnse),大家更喜欢js.erb,虽然它是地球上最丑的两种代码格式加在一起,天啊

关于javascript - 将我的 Rails 3 应用程序从 Prototype 转换为 jQuery 的最新、最有效的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4961438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com