link_to_function在Rails 3中哪里消失了?

我刚刚玩Rails 3测试版,发现link_to_function现在已经消失了。 我认为有另一种方法可以实现相同的结果(onclick事件?)但我想知道是否有更多的Rails-3’方法。 TIA。

Rails 3似乎已经取消了Prototype Helper,转而采用不那么突兀/ JS库不可知的方法。 目标是消除Rails生成的所有内联JavaScript。 Prototype Helper生成了几乎所有的javascript。

现在,任何非远程助手变体都会通过提供:remote => true选项为您选择的JS库中的远程调用生成正确的javascript。

不幸的是,这对于x到函数方法并不适用。 目前有原型遗留助手不再是Rails的核心部分。

您还可以使用ActionView :: Helpers :: PrototypeHelper :: JavascriptGenerator :: GeneratorMethods中定义的调用来提供javascript代码:onclick作为link_to的html_option,但这并不完美。

例子:

Rails < 3 | Rails 3 link_to_remote "target", url | link_to "target", url, :remote => true form_remote_for @post | form_for @post, :remote => true 

等等….

或者那种效果。 我无法找到官方文档来支持我的说法。 所以发行说明现在必须要做。

在使用它之前,您需要包含正确的js源文件。 确保您正在加载prototype.js和rails.js,或者为其选择的JS框架加载库和驱动程序。

请记住,Rails 3现在处于测试阶段。 但这并不意味着它已经完成了。 老实说,我不知道如何替换link_to_function。 它违背了不引人注目的JavaScript的理想。

要回答我自己的问题,似乎这是有效的,足以满足我的需要:

 link_to "name", nil, :onlick => "alert('Hello, world!')" 

link_to_remote可以像这样完成

link_to“target”,:remote => true

并做一个ajaxpost/得到你

link_to“target”,{:controller => controller,:action => method,} ,: remote => true

在轨道2中就是这样的

link_to_remote“target”,:url => {:controller => controller,:action => method,},:remote => true