Rails: label_tag во вспомогательном методе не выводит код - PullRequest
2 голосов
/ 09 марта 2012

Я пытаюсь написать вспомогательный метод для упрощения построения форм с помощью Bootstrap Twitter. Когда я пытаюсь поместить label_tag в вспомогательный метод, ничего не выводится. Любой другой метод helper_tag в функции работает, но не этот label_tag. Есть идеи, что я делаю не так?

имя является символом, а текст является текстом метки

Код помощника

def bootstrap_form_text_field(name, text)
    content_tag :div, class: "control-group" do
        label_tag name, text, class: "control-label"
        content_tag :div, class: "controls" do
            text_field_tag name
        end
    end         
end

Посмотреть код

<%= bootstrap_form_text_field :called_number, "Called Number" %>

выход

<div class="control-group"><div class="controls"><input id="called_number" name="called_number" type="text" /></div></div>

Я использую ruby-1.9.3-p0 и rails 3.2.2, если это поможет.

редактирование: Похоже, отображается только последний вызываемый помощник по тегам. Я скопировал label_tag чуть ниже text_field_tag, и метка была единственной вещью, которая была отображена.

1 Ответ

3 голосов
/ 09 марта 2012

Попробуйте это

def bootstrap_form_text_field(name, text)
    content_tag :div, class: "control-group" do
        label_tag(name, text, class: "control-label") +
        content_tag(:div, class: "controls") do
            text_field_tag name
        end
    end         
end

Я не уверен, что это + будет работать правильно так, но это вопрос объединения результатов всех тегов, если у вас естьболее одного на каждом уровне, вы даже можете объединить их в переменную и затем вернуть эту переменную в конце текущей области.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...