我只是在玩 Rails 3 beta 并注意到 link_to_function 现在不见了。我认为有一种替代方法可以实现相同的结果(onclick 事件?),但我想知道是否有更多的 Rails-3'y 方法来做到这一点。 TIA。
最佳答案
Rails 3 似乎已经取消了 Prototype Helper,取而代之的是一种不那么突兀/JS 库不可知的方法。目标是消除所有由 Rails 生成的内联 javascript。 Prototype Helper 生成了几乎所有的 javascript。
现在,任何非远程助手变体都将通过提供 :remote => true 选项为您选择的 JS 库中的远程调用生成正确的 javascript。
不幸的是,这不适用于 x to function 方法。暂时有prototype legacy helpers它们不再是 Rails 的核心部分。
您还可以使用 ActionView::Helpers::PrototypeHelper::JavascriptGenerator::GeneratorMethods 中定义的 call 将 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
等等....
或者类似的东西。我很难找到官方文件来支持我的声明。所以release notes现在必须要做。
在使用它之前,您需要包含正确的 js 源文件。确保您正在加载prototype.js 和rails.js,或者在它们的位置选择JS 框架的库和驱动程序。
请记住,Rails 3 现在处于测试阶段。但这并不意味着它已经完成了。老实说,我不知道如何替换 link_to_function。它违背了不引人注目的 javascript 的理想。
关于ruby-on-rails - 在 Rails 3 中,link_to_function 消失到哪里去了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2250231/