Пытаетесь создать новый помощник по форме, чтобы добавить класс в текстовое поле, но, кажется, он не добавляет этот класс?

Вот помощник:

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 нет, хотя в отладчике он был.

Кто-нибудь знает почему?

1 ответ

Я считаю, что это должно быть так:

text_field_tag *args

(со звездочкой *)

Другие вопросы по тегам