Хобрук: Ваш путь к мастерству в программировании

simple_form collection_Radio_buttons генерирует дополнительные метки

У меня есть следующий Рубин:

<%= simple_form_for @answer, url: presentation_survey_path(@presentation) do |f| %>
                <%= f.collection_radio_buttons :option_id, @question.options_array, :first, :last, {label: false} do |b| %>
    <div class="col-sm-4">
        <%= b.label(class: 'btn btn-large', style: 'margin-right: 20px; margin-left: 20px;') {b.radio_button(id: b.object.last, class: 'answer-input', style: 'display: none;') + b.text } %>
    </div>
<% end %>

И он правильно генерирует html, за исключением того, что он генерирует две метки:

<span>
    <label for="answer_option_id_15">
        <div class="col-sm-4">
            <label class="btn btn-large" for="answer_option_id_15" style="margin-right: 20px; margin-left: 20px;">
                <input class="answer-input" id="Way too many" name="answer[option_id]" style="display: none;" type="radio" value="15" />
            Way too many
            </label>
        </div>
    </label>
</span>

По какой-то причине он генерирует первую метку. Я хочу оставить только второй. Метка: false не работает. Как избавиться от первого ярлыка?


  • Согласно документам, вы все сделали правильно, но единственная разница в том, что вы вставляете прямой html в строки между ними. Можете ли вы бросить это и посмотреть, что произойдет? Если это работает, попробуйте content_tag или попробуйте применить класс и стиль в js или css. 30.04.2015

Ответы:


1

Согласно документам:

Для флажков и переключателей вы можете удалить метку, изменив значение boolean_style со значения по умолчанию :nested на :inline.

Кроме того, simple_form имеет некоторые параметры для collection_radio_buttons, которые задокументированы в коде:

# Collection radio accepts some extra options:
#
#   * checked  => the value that should be checked initially.
#
#   * disabled => the value or values that should be disabled. Accepts a single
#                 item or an array of items.
#
#   * collection_wrapper_tag   => the tag to wrap the entire collection.
#
#   * collection_wrapper_class => the CSS class to use for collection_wrapper_tag
#
#   * item_wrapper_tag         => the tag to wrap each item in the collection.
#
#   * item_wrapper_class       => the CSS class to use for item_wrapper_tag
#
#   * a block                  => to generate the label + radio or any other component.

В моем случае установка item_wrapper_tag на false и boolean_style на :inline помогла, например:

<%= f.collection_radio_buttons :option_id, @question.options_array, :first, :last, boolean_style: :inline, item_wrapper_tag: false do |b| %>
01.08.2015
Новые материалы

Что такое структура данных?
Структура данных хранит и извлекает данные. Все, что обеспечивает эти две функции, является структурой данных . Период. Вы можете пропустить оставшуюся часть статьи, если ответ..

мои январские чтения по программированию
Эрик Эллиот Программирование приложения JavaScript Эл Свейгарт «Автоматизируйте скучные вещи с помощью Python» Прогрессивное веб-приложение Google..

Создание ассоциаций секвелизации с помощью инструмента командной строки Sequelize
Sequelize - популярный, простой в использовании инструмент объектно-реляционного сопоставления (ORM) JavaScript, который работает с базами данных SQL. Довольно просто начать новый проект с..

Искусственный интеллект в юридической отрасли - пример прогнозирования судебных решений с помощью глубокого обучения
На протяжении всей истории люди полагались на суды, присяжных, королей и королев в отправлении правосудия. Сегодня способность судов обеспечивать справедливое и быстрое правосудие для своих..

Введение в машинное обучение для обнаружения аномалий (часть 1)
Тщательно созданный, тщательно спроектированный ресурс для специалистов по данным. Часть 1 Главы 03 из Руководства по машинному обучению для обнаружения аномалий Внимание! Прежде чем вы..

Начало работы с Pulumi в Digital Ocean
Цифровой океан (ДО) — отличная альтернатива многим другим поставщикам облачных услуг. DO предоставляет простой и понятный пользовательский интерфейс, упрощающий управление инфраструктурой и..

#Day68 из #100days_of_coding
Вчера был мой 68-й день кодинга. я решил один вопрос Проблема: Разбить двоичную строку на подстроки с равным количеством нулей и единиц Дана двоичная строка str длины N . Задача состоит..