我张贴另一个问题关于这个同一段代码抱歉,但我这样一个新手到轨它的痛苦。我的问题是,我希望在数据库中存在默认值时选择第三个单选按钮。换句话说,我有三个按钮“真”,“假”和“任一”。如果没有选择任何东西,或者如果用户选择了“任一”按钮,我希望显示该选择。目前,如果用户选择“真”或“假”,那么该选择将被正确反映并如预期那样。这只是第三个被选中的选项,当表单被保存或再次提交时没有被反映出来。这里是我的代码:遇到的麻烦:检查radio_button - 轨道
<div class="new-partner-form">
<%= form_for [:admin, matching_profile.partner, matching_profile], :html => {:id => "edit_profile", :multipart => true} do |f| %>
<div class="rounded-block semi-wide clear">
<h4>Military Service</h4>
<%= f.radio_button :served_in_us_army, false %>
<%= label :served_in_us_army, 'NO', {:style => 'display:inline'} %>
<%= f.radio_button :served_in_us_army, true %>
<%= label :served_in_us_army, 'YES', {:style => 'display:inline'} %>
<%= f.radio_button :served_in_us_army, " ", { :checked => (:served_in_us_army.nil? or :served_in_us_army.blank? ? true : false) } %>
<%= label :served_in_us_army, 'Either', {:style => 'display:inline'} %>
<%= f.error_message_on :served_in_us_army %>
</div>
编辑:我要指出,也试过了:没有大括号“选中”选项。仍然没有运气。
不知道这是最好的解决办法,但这里是我是如何解决这个问题(我需要的字段值而不是列名):
<div class="rounded-block semi-wide clear">
<h4>Military Service</h4>
<%= f.radio_button :served_in_us_army, false %>
<%= label :served_in_us_army, 'NO', {:style => 'display:inline'} %>
<%= f.radio_button :served_in_us_army, true %>
<%= label :served_in_us_army, 'YES', {:style => 'display:inline'} %>
<%= f.radio_button :served_in_us_army, " ", :checked => matching_profile.served_in_us_army.nil? %>
<%= label :served_in_us_army, "Either", {:style => 'display:inline'} %>
<%= f.error_message_on :served_in_us_army %>
</div>
恐怕我还是有点云里雾里这里。假设我将方法添加到返回值为:served_in_us_army的模型(大概我可以做一些类似'attr_accessor:served_in_us_army'的东西)。我是否仍然需要在视图中检查以查看该值,并根据该值确定是否检查该按钮? – Ramy