simple_form niestandardowe wejście z niestandardowym opakowaniem

Próbuję wprowadzić niestandardowe dane wejściowe dla waluty w mojej aplikacji. Miałem te okładki bootstrap i tak dalej (myślę, że pochodzi z simple_form lub z bootstrapem ...), więc mogłem zrobić coś takiego:

<%= f.input :cost, wrapper => :append do %>
      <%= content_tag :span, "$", class: "add-on" %>
      <%= f.number_field :cost %>
<% end %>

I działa zgodnie z oczekiwaniami. Chodzi o to, że potrzebuję tego samego w wielu miejscach i nie chcę go kopiować / wklejać dookoła.

Postanowiłem więc stworzyć własne wejście.

Do tej pory otrzymałem następujący kod:

class CurrencyInput < SimpleForm::Inputs::Base

  def input
    input_html_classes.unshift("string currency")
    input_html_options[:type] ||= input_type if html5?

    @builder.input attribute_name, :wrapper => :append do |b|
      # content_tag(:span, "$", class: "add-on")
      b.text_field(attribute_name, input_html_options)
    end
  end
end

Ale mam pewne błędy. Wygląda na tob nie przyszedł zgodnie z oczekiwaniami, więc po prostu nie działa.

Czy to naprawdę możliwe? Nie mogłem znaleźć żadnego przykładu i nie mogę sprawić, by działał sam.

Z góry dziękuję.

questionAnswers(1)

yourAnswerToTheQuestion