0

这是帮手:

module FormHelper
  def phone_number_tag *args
    args.each do |e|
      if e.is_a? Hash and e.has_key? :class
        e[:class] = e[:class] + " phone_number"
      elsif e.is_a? Hash
        e[:class] = "phone_number"
      end
    end
    text_field_tag args
  end
end

现在奇怪的是,当我像这样在里面扔一个调试器时......

module FormHelper
  def phone_number_tag *args
    args.each do |e|
      if e.is_a? Hash and e.has_key? :class
        e[:class] = e[:class] + " phone_number"
      elsif e.is_a? Hash
        e[:class] = "phone_number"
      end
    end
    debugger
    text_field_tag args
  end
end

...并text_field_tags args在遇到该调试器后在控制台中运行,我得到:

"<input id=\"_:first___:class___input_span2_phone_number___:placeholder___First__\" name=\"first {:class=&gt;&quot;input span2 phone_number&quot;, :placeholder=&gt;&quot;First&quot;}\" type=\"text\" />"

但是,呈现页面上的 HTML 输出是:

<input class="input span2" id="follow_up_phone" name="referral[follow_ups_attributes][0][phone]" size="30" type="text">

即使在调试器中有,也没有 phone_number 类。

有谁知道为什么?

4

1 回答 1

0

我相信它应该是这样的:

text_field_tag *args

(带星号 *)

于 2013-05-15T03:21:02.143 回答