Psy*_*nix 24 ruby-on-rails ruby-on-rails-3
我刚刚玩Rails 3测试版,发现link_to_function现在已经消失了.我认为有另一种方法可以实现相同的结果(onclick事件?)但我想知道是否有更多的Rails-3'方法.TIA.
EmF*_*mFi 27
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
Run Code Online (Sandbox Code Playgroud)
等等....
或者那种效果.我无法找到官方文档来备份我的说法.所以发行说明现在必须要做.
在使用它之前,您需要包含正确的js源文件.确保您正在加载prototype.js和rails.js,或者为其选择的JS框架加载库和驱动程序.
请记住,Rails 3现在处于测试阶段.但这并不意味着它已经完成了.老实说,我不知道如何替换link_to_function.它违背了不引人注目的javascript的理想.
要回答我自己的问题,似乎这是有效的,足以满足我的需要:
link_to "name", nil, :onlick => "alert('Hello, world!')"
Run Code Online (Sandbox Code Playgroud)