javascript - 如何在 helper 中使用 unobustrive JS 重构 link_to_function ?

标签 javascript ruby-on-rails ruby refactoring unobtrusive-javascript

我在我的一个 ApplicationHelper 方法中使用 link_to_function:

def link_to_add_fields(name, f, association)
  new_object = f.object.class.reflect_on_association(association).klass.new
  fields = f.fields_for(association, new_object, :child_index => "new_#{association}") do |builder|
    render(association.to_s + "_fields", :f => builder)
  end
  link_to_function(name, ("add_fields(this, '#{association}', '#{escape_javascript(fields)}')").html_safe)
end

由于它将在 Rails 4 中被弃用,我想使用 Unobusrive JS 摆脱 link_to_function 。如何做到这一点?

最佳答案

我知道这是一个老问题,但我很高兴用与我完全相同的代码片段遇到这个问题......祝福你 Ryan Bates 和 RailsCasts!

无论如何,这都是一个非常简单的重构。您只需将该函数作为 link_to 的“onclick”参数传递即可:

link_to(name, '#', onclick: "add_fields(this, '#{association}', '#{escape_javascript(fields)}')")

关于javascript - 如何在 helper 中使用 unobustrive JS 重构 link_to_function ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15429511/

相关文章:

ruby-on-rails - 关于Ruby中symbol和instance method的一些问题

arrays - 合并数组内部的数组

javascript - OpenLayers 测量功能使 IE 崩溃

javascript - Apple iOS 浏览器随机不会呈现动态加载的 HTML 对象

ruby - Hpricot 中使用的(例如)除数表示法是什么?

ruby-on-rails - 在 GitHub 上使用 Devise Omniauth 时如何为 Rails 设置本地开发环境?

ruby-on-rails - 我应该在 Ruby on Rails 中的哪里存储静态列表(例如州或城市)?

javascript - 我应该在构造函数上方或下方包含 module.exports

javascript - 给定三个点创建两个平行平面(Javascript)

ruby-on-rails - Gem 安装 rails 无法完成