Rails 3远程链接:条件和mootools

时间:2011-04-11 21:27:47

标签: ruby-on-rails mootools

回到Rails 2,在link_to_remote中有一个:condition选项,它允许你指定一些必须返回true的javascript或者不会发送远程请求。但是,在rails 3中,似乎已删除了此选项。

我想要做的是有一个ajax表单,但它需要在提交之前在浏览器上进行验证(这是非标准的验证)。基本上我需要能够设置一些条件javascript表达式,以防止在验证失败时提交表单 - 与rails 2中的:condition选项相同。有没有办法在rails 3中再次实现相同的功能?

我正在使用带有mootools版本的rails.js的mootools。我查看了mootools rails.js文件并没有看到任何看起来像我会指定一些条件javascript的东西。我错过了什么吗?

*注意:我只是查看了原型中编写的默认rails.js文件的源代码。在这个文件中有以下几行:

var event = element.fire("ajax:before");
if (event.stopped) return false;

在原型版本中,您可以通过监听“ajax:before”事件并在侦听器中停止事件来停止发送请求。但是,我在mootools rails.js代码中找不到这样的东西,所以也许这是mootools rails.js文件中的一个错误?

1 个答案:

答案 0 :(得分:0)

link_to_remote已从Rails 3中删除。现在是link_to :remote => true。如果你想做一些js验证,你可以使用这样的东西:

<%= link_to "test", '/test', :id => "test-link", :remote => true  %>

并在application.js中添加您的验证(在我的示例中它是Prototype。我猜测使用Mootools并不是问题):

document.observe("dom:loaded", function() {
  $('test-link').observe('click', function(event){
    if your_validation_magic
      event.stop();
  });
});

<强>更新: Mootools也有此活动: https://github.com/kevinvaldek/mootools-ujs/blob/master/Source/rails.js#L131