'remote'标签从Prototype迁移到jQuery

时间:2011-06-10 18:38:59

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

我正在使用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帮助程序方法)。

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


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

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

2 个答案:

答案 0 :(得分:1)

你需要告诉Rails使用jQuery。

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

有关详细信息,请参阅the documentation

答案 1 :(得分:0)

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

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