为什么button_to_function方法未定义(RoR)?

时间:2015-06-04 23:43:55

标签: ruby-on-rails ruby

我刚刚开始使用Ruby on Rails,很抱歉n00bish Q ...

我想创建一个触发一些javascript的按钮。我发现this Q引导我编写以下代码:

<%= button_to_function "Change Password", "$(this).toggle();", :class =>"password_div" %>

(在其他地方,我有<div class="password_div" style="display: none;">…</div>个标签。)

问题是当我运行此代码时出现以下错误:

undefined method `button_to_function' for #<<Class:0x00000006abc1c8>:0x0000000647ee00>

我发现这令人困惑。我的印象是这在Rails中是标准的(它列在here以及许多其他方法,据我所知, 可立即在RoR中使用。)

我是否需要在某处制作 JavaScript Helper?或者我错过了其他地方的东西?

1 个答案:

答案 0 :(得分:2)

看起来好像是removed(源代码):

  def button_to_function(name, function=nil, html_options={})
    message = "button_to_function is deprecated and will be removed from Rails 4.1. We recommend using Unobtrusive JavaScript instead. " +
      "See http://guides.rubyonrails.org/working_with_javascript_in_rails.html#unobtrusive-javascript"
    ActiveSupport::Deprecation.warn message

    onclick = "#{"#{html_options[:onclick]}; " if html_options[:onclick]}#{function};"

    tag(:input, html_options.merge(:type => 'button', :value => name, :onclick => onclick))
  end