2012-10-11 80 views
0

我有一個標準的控制器users,由腳手架產生並且稍微改動了一下。使用遷移,我將字段類型從整數更改爲字符串:gender:orientation。 我有一個表格,以便提交新條目的用戶表:Rails表單處理:如何處理單選按鈕?

<%= form_for @user do |f| %> 
<%= f.label :first_Name %><br><%= f.text_field :first_name %><br> 
<%= f.label :last_name %><br><%= f.text_field :last_name %><br> 
<%= f.radio_button :orientation, false %><%= f.label :orientation, "Straight" %> 
<%= f.radio_button :orientation, false %><%= f.label :orientation, "Gay" %> 
<%= f.radio_button :orientation, false %><%= f.label :orientation, "Bi" %><br> 
<%= f.submit "Go" %> 
<% end %> 

然而,當我檢查數據庫本身,:gender:orientation都是「假」。我希望他們成爲用戶選擇的價值觀。

我該怎麼做?這裏有什麼問題?

此外,每個選擇都有布爾字段會更好嗎?

:man :boolean 
:woman :boolean 
:gay :boolean 

+0

我建議創建一個獨立的'orientations'表和'genders'表。然後在用戶上有一個'orientation_id'和'gender_id'。 –

+0

謝謝。這已被討論[這裏](http://stackoverflow.com/questions/12786435/rails-database-design-use-strings-or-integer)。基本上,對於你應該規範化數據庫的程度有不同的意見。考慮到我沒有製作下一個Facebook的事實,我認爲我可以忍受一些縮減的數據。我已經計劃添加十幾個表格來規範其他領域。 – TimmyOnRails

回答

0

正確的代碼:

I am:<br> 
<%= f.radio_button :gender, "Male" %><%= f.label :gender, "Man" %> 
<%= f.radio_button :gender, "Female" %><%= f.label :gender, "Woman" %><br> 

Sexsual Orientation:<br> 
<%= f.radio_button :orientation, "Straight" %><%= f.label :orientation, "Straight" %> 
<%= f.radio_button :orientation, "Gay" %><%= f.label :orientation, "Gay" %> 
<%= f.radio_button :orientation, "Bi" %><%= f.label :orientation, "Bi" % 
+0

性與性別?拼寫錯誤是故意的嗎? – TRiG

0

嘗試check_box代替radio_button?

<%= f.check_box :man %> 
+0

我不知道這是否會奏效,因爲從技術上講,某人不能既是男人又是女人。用戶將不得不在兩者之間進行選擇。 – TimmyOnRails