自定义 Rails 5 collection_radio_buttons 以与 Bootstrap 4 一起使用
Customizing Rails 5 collection_radio_buttons to work with Bootstrap 4
正在尝试使用 Bootstrap 4 的表单收音机组件。
使用:
- Rails 5
- Bootstrap 4 (bootstrap_ruby gem)
像这样:
<div class="radio">
<label>
<input type="radio" name="exampleRadios" id="exampleRadios1" value="option1" checked>
Option one is this and that—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>
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,您可以添加某种模型方法来检查它是否应该被禁用,然后在 <div class="radio">
标记中添加类似 <%= b.object.disabled? ? 'disabled' : '' %>
的内容。与 b.radio_button
调用相同 (b.radio_button(disabled: b.object.disabled?)
).
正在尝试使用 Bootstrap 4 的表单收音机组件。
使用:
- Rails 5
- Bootstrap 4 (bootstrap_ruby gem)
像这样:
<div class="radio">
<label>
<input type="radio" name="exampleRadios" id="exampleRadios1" value="option1" checked>
Option one is this and that—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>
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,您可以添加某种模型方法来检查它是否应该被禁用,然后在 <div class="radio">
标记中添加类似 <%= b.object.disabled? ? 'disabled' : '' %>
的内容。与 b.radio_button
调用相同 (b.radio_button(disabled: b.object.disabled?)
).