【问题标题】:The 'remote' tag migrating from Prototype to jQuery从 Prototype 迁移到 jQuery 的“远程”标签
【发布时间】:2011-09-12 17:33:09
【问题描述】:

我正在使用 Ruby on Rails 3.0.7,并且正在从 Prototype 迁移到 jQuery 1.6.1。

在我的应用程序中,我有很多使用 remote 标记的输入表单,以便使用 JavaScript 提交数据:

# A form example in my application
<%= form_for(@user, :remote => true) do |f| %>
  ...
<% end %>

为了解决这个问题,在我的app/views/application.html.erb 文件中,我尝试更改以下代码:

<%= javascript_include_tag :defaults, 'jquery-1.6.1.min' %>

到这里:

<%= javascript_include_tag 'jquery-1.6.1.min', 'application' %>

但是,remote 标记不再适用于我的表单(这是正常行为,因为 RoR 使用自定义 Prototype 辅助方法)。

是否有一种“简单”的方式来处理使用 JavaScript 而不使用 Prototype 的表单并避免remote 标记的上述问题?如果是这样,我该怎么办?


在这种情况下,我必须使用 Prototype 来“解决”\“支持”这个问题,我可以在我的public/javascript 文件夹中“删除”\“不加载”以下一些文件吗?

application.js
controls.js    
dragdrop.js
effects.js
jquery-1.6.1.min.js
prototype.js
rails.js

【问题讨论】:

    标签: jquery ruby-on-rails ruby ruby-on-rails-3 prototypejs


    【解决方案1】:

    你需要告诉 Rails 使用 jQuery。

    gem jquery-rails 添加到您的Gemfile,然后运行rails g jquery:install

    更多信息请参见the documentation

    【讨论】:

    • (1) 在我安装了那个 gem 之后,我是否仍然可以在我的表单中使用 'remote' 标签而不用编辑文件中的每个代码? (2) 我可以使用 Prototype 辅助方法作为 jQuery 辅助方法吗? Rails 3.1 版本中提到的“jquery-rails”会是默认的 JavaScript 框架吗? (3) 运行 'rails g jquery:install' 命令将自动处理所有安装问题,安装后我的应用程序仍然是“稳定\工作系统”吗?
    • 另外,网上的文档还是不够货。
    【解决方案2】:

    提交表单时,是否会加载新页面或通过 Ajax 进行请求?使用 Firefox+Firebug 检查调用是否真的是 Ajax 调用。

    其次,您需要检查您的布局是否正确加载了 jQuery 和 jQuery Rails connector。根据您使用的 Rails 版本,请访问此链接以获取更详细的说明。

    【讨论】:

      猜你喜欢
      • 2011-04-18
      • 2011-09-11
      • 2020-04-22
      • 2013-06-25
      • 2021-08-05
      • 1970-01-01
      • 2012-11-15
      • 2022-09-29
      • 1970-01-01
      相关资源
      最近更新 更多