我使用以下使用Simple_form gem的表单:
<%= simple_form_for @match_prediction do |f| %>
<%= f.input :outcome, label: false, as: :radio_buttons, collection: [['local', match.local_team], ['Tie', 'Tie'], ['visit', match.visiting_team]], label_method: :second, value_method: :first %>
<%= f.submit 'Save' %>
<% end %>
目前它按预期工作,这意味着:渲染3个单选按钮,彼此独占,每个按钮都会传递一个唯一的字符串传递给服务器。
问题:我想将Bootstrap网格中不同列的每个单选按钮分开,如下所示:
<div class="row prediction">
<div class="col-sm-4">
<!-- FIRST RADIO BUTTON HERE -->
</div>
<div class="col-sm-4">
<!-- SECOND RADIO BUTTON HERE -->
</div>
<div class="col-sm-4">
<!-- THIRD RADIO BUTTON HERE -->
</div>
<%= f.submit 'Save' %>
</div>
由于整个集合在表单代码中的一行中指定,我不能简单地分割行并将它们插入相关的HTML中。
有没有办法通过simple_form或vanilla rails形成助手来实现这个目标?
我考虑将无线电分成单独的表单输入,但这样可以一次选择多个选项。我很感激你的帮助。
答案 0 :(得分:1)
你难道不是以simple_form形式使用标准的rails helper吗?如何直接使用radio_button
助手呢? Docs
<div class="row prediction">
<div class="col-sm-4">
<%= radio_button 'match_prediction', 'outcome', 'local', checked: @match_prediction.outcome == 'local' %> <%= match.local_team %>
</div>
<div class="col-sm-4">
<%= radio_button 'match_prediction', 'outcome', 'Tie', checked: @match_prediction.outcome == 'Tie' %> <%= 'Tie' %>
</div>
<div class="col-sm-4">
<%= radio_button 'match_prediction', 'outcome', 'visit', checked: @match_prediction.outcome == 'visit' %> <%= match.visiting_team %>
</div>
<%= f.submit 'Save' %>
</div>
如果可以在simple_form中访问标准FormHelper,您可以调用:
<%= f.radio_button 'outcome', 'xzy' %> <%= 'whatever' %>