2016-07-14 2 views
0

Пытается использовать компонент радиостанции Bootstrap 4.Настройка Rails 5 collection_radio_buttons для работы с Bootstrap 4

Использование:

  • Rails 5
  • Bootstrap 4 (bootstrap_ruby камень)

Как это:

<div class="radio"> 
    <label> 
    <input type="radio" name="exampleRadios" id="exampleRadios1" value="option1" checked> 
    Option one is this and that&mdash;be sure to include why it's great 
    </label> 
</div> 
<div class="radio"> 
    <label> 
    <input type="radio" name="exampleRadios" id="exampleRadios2" value="option2"> 
    Option two can be something else and selecting it will deselect option one 
    </label> 
</div> 
<div class="radio disabled"> 
    <label> 
    <input type="radio" name="exampleRadios" id="exampleRadios3" value="option3" disabled> 
    Option three is disabled 
    </label> 
</div> 

Я пытаюсь использовать метод collection_radio_buttons помощника для для этого, но мне не повезло.

Может кто-нибудь дать мне представление о том, как это можно сделать? Заранее спасибо.

В настоящее время у меня есть:

<div class="radio"> 
    <%= collection_radio_buttons(:post, :category_id, Category.all, :id, :name) do |b| %> 
    <%= b.label do %> 
     <%= b.radio_button %> 
    <% end %> 
    <% end %> 
</div> 

Это отсутствует имя ярлыка, потому что я не уверен, как получить имя метки.

Я пробовал label.name, но это вызывает ошибку.

Это выход настоящее время я получаю:

<div class="radio"> 
<input type="hidden" name="post[category_id]" value=""> 
<label for="post_category_id_1"> 
    <input type="radio" value="2" name="post[category_id]" id="post_category_id_30"> 
</label> 
<label for="post_category_id_2"> 
    <input type="radio" value="2" name="post[category_id]" id="post_category_id_31"> 
</label> 
<label for="post_category_id_3"> 
    <input type="radio" value="3" name="post[category_id]" id="post_category_id_32"> 
</label> 
</div> 

ответ

2

collection_radio_buttons accepts a block, и метод, который вы ищете, text:

<%= collection_radio_buttons(:post, :category_id, Category.all, :id, :name) do |b| %> 
    <div class="radio"> 
    <%= b.label do %> 
     <%= b.radio_button + b.text %> 
    <% end %> 
    </div> 
<% end %> 

Если вам нужен вариант 3 отключен, вы могли бы добавьте какой-то модельный метод, чтобы проверить, нужно ли его отключить или нет, а затем добавьте что-то вроде <%= b.object.disabled? ? 'disabled' : '' %> в тег <div class="radio">. То же самое с вызовом b.radio_button (b.radio_button(disabled: b.object.disabled?)).

+0

Спасибо @ flanger001 :) b.text сделал трюк также благодаря ссылке на документы. –

Смежные вопросы