Объединение блоков content_tag (построитель форм) - PullRequest
0 голосов
/ 06 февраля 2019

Я получаю ряд ошибок и не знаю, как объединить блоки content_tags.

bs_form_builder.rb: 36: синтаксическая ошибка, неожиданный tSYMBEG, ожидаемый конец @ template.content_tag: div,class: "input-group" do

bs_form_builder.rb: 36: синтаксическая ошибка, неожиданное do, ожидаемое завершение ... g: div, class: "input-group" do ... ^ ~

bs_form_builder.rb: 39: синтаксическая ошибка, неожиданный '+', ожидаемый конец конца + ^

bs_form_builder.rb: 43: синтаксическая ошибка, неожиданный конец, ожидающий конец конца ввода ^ ~~

class BsFormBuilder < ActionView::Helpers::FormBuilder

def bs_dollar_input(method, label)
    @template.content_tag :div, class: "form-group" do
      @template.label(@object_name, label)+
      @template.content_tag :div, class: "input-group" do
        @template.content_tag :div, class: "input-group-prepend" do
          @template.content_tag(:span, "$", class:'input-group-text')
        end +
        @template.text_field(@object_name, method, class: 'form-control')
      end
    end 
  end
 end

Ожидаемый результат:

  <div class="form-group">
      <label>What is the value of your favorite car?</label>
      <div class="input-group">
          <div class="input-group-prepend">
              <span class="input-group-text">$</span>
          </div>
          <input class="form-control" id="car" name="car" required="" type="text" value="0" />
      </div>
  </div>

1 Ответ

0 голосов
/ 06 февраля 2019

Необходимо добавить () для тегов содержимого.

def bs_dollar_input(method, label)
    @template.content_tag :div, class: "form-group" do
      @template.label(@object_name, label)+
      @template.content_tag(:div, class: "input-group") do
        @template.content_tag( :div, class: "input-group-prepend") do
          @template.content_tag(:span, "$", class:'input-group-text')
        end +
        @template.text_field(@object_name, method, class: 'form-control')
      end
    end 
  end
 end
...