在寻找 javascript 问题的解决方案时,我看到了关于 link_to_function
在 Rails 3 中被弃用的多条评论。但是,我已经能够完成我基于 Rails-3 的部分使用 link_to_function
的项目。它工作正常。
作为 Rails 的新手,我担心我可能会使用一些不会得到长期支持的东西,或者可能成为遗留问题。在查看 api.rubyonrails.org 时,我看到 link_to_function
在 ActionView::Helpers::JavaScriptHelper 模块中明确调用,作为 Ruby on Rails v3.0.4 支持的公共(public)方法。没有关于函数生命周期的警告或其他声明。
在 Rails 3 中,我应该使用其他方法来代替 link_to_function
吗?或者 link_to_function
可以使用吗?
谢谢。
最佳答案
link_to_function
助手已经是 deprecated again in 3.2.4 .
在某些需要调用特定 javascript 函数等的用例中,该方法本身非常简单且很好。您可以轻松添加自己的帮助程序来实现相同的功能。以下代码是从 Jeremy 复制的 https://github.com/rails/rails/pull/5922#issuecomment-5770442
# /app/helpers/link_to_function_helper.rb
module LinkToFunctionHelper
def link_to_function(name, *args, &block)
html_options = args.extract_options!.symbolize_keys
function = block_given? ? update_page(&block) : args[0] || ''
onclick = "#{"#{html_options[:onclick]}; " if html_options[:onclick]}#{function}; return false;"
href = html_options[:href] || '#'
content_tag(:a, name, html_options.merge(:href => href, :onclick => onclick))
end
end
关于javascript - Rails 3 - "link_to_function"方法的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5063246/