我張貼另一個問題關於這個同一段代碼抱歉,但我這樣一個新手到軌它的痛苦。我的問題是,我希望在數據庫中存在默認值時選擇第三個單選按鈕。換句話說,我有三個按鈕「真」,「假」和「任一」。如果沒有選擇任何東西,或者如果用戶選擇了「任一」按鈕,我希望顯示該選擇。目前,如果用戶選擇「真」或「假」,那麼該選擇將被正確反映並如預期那樣。這只是第三個被選中的選項,當表單被保存或再次提交時沒有被反映出來。這裏是我的代碼:遇到的麻煩:檢查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