2014-10-30 25 views
0

我在配置文件創建過程中獲取性別並將其存儲在數據庫中。 在更新配置文件頁面中,我想要選擇正確的用戶性別。Rails4選擇 - 如何爲網站用戶設置默認選定項目?

我在我的webapp中設置Gender如下所示。
我爲性別使用布爾類型。
首先,我加入遷移文件

DB /遷移/ [時間戳]新列_add_admin_to_users.rb

class AddAdminToUsers < ActiveRecord::Migration 
    def change 
    add_column :users, :admin, :boolean, default: false 

    #Start - Adding for gender and dob 
    add_column :users, :date_of_birth, :datetime 
    add_column :users, :is_female, :boolean, default: false 
    #End - Adding for gender and dob 

    end 
end 

運行以下與我的新列創建表

$bundle exec rake db:migrate 

決定創建選擇框,因爲我無法在重複嘗試後創建單選按鈕

應用程序/模型/ user.rb

class User < ActiveRecord::Base 
. 
. 
GENDER_TYPES = [ ["Male","0"], [ "Female","1" ] ] 
validates_inclusion_of :is_female, in: [true, false] 
. 
. 

這是我的觀點註冊表格

應用程序/視圖/用戶/ new.html.erb的選擇框片段

<%= form_for(@user) do |f| %> 
<%= f.label :is_female, "Gender" %> 
<%= f.select :is_female, User::GENDER_TYPES, class: 'form-control' %> 

我有同樣的選擇框片段更新配置文件表格

應用/視圖/用戶/ edit.html.erb

<%= form_for(@user) do |f| %> 
<%= f.label :is_female, "Gender" %> 
<%= f.select :is_female, User::GENDER_TYPES, class: 'form-control' %> 

每次性別是男。
任何人都可以請分享如何設置用戶在註冊時給的性別?

例如,
當女性用戶註冊時,我希望在選擇更新配置文件時選擇女性。

回答

2

我認爲這是因爲你設置給性別類型的選項爲0和1,而你正在使用布爾 - 真/假代表is_female 。試試這個

class User < ActiveRecord::Base 
    GENDER_TYPES = [['Male', true], ['Female', false]] 
... 

這應該工作作爲我們現在嚴格正與布爾值 - 不爲0或1

+0

非常感謝@geeky_sh :)這工作完美。再次感謝 – 2014-10-30 18:35:43

2

可以通過selected HTML屬性來完成類似下面

<%= f.select :is_female, User::GENDER_TYPES, class: 'form-control', :selected => "male" %> 
+0

感謝,但不會爲選擇適合女性用戶使用過它設置的男性? – 2014-10-30 17:47:32

+0

是的,但是你可以通過任何你喜歡的來代替「男性」。這只是一個例子。 – 2014-10-30 18:43:32

+0

是啊@maximus這也是工作,但我不知道如何。非常感謝你。我們是不是明確地說選擇男性?這個怎麼用?如果你能指點我的資源來閱讀,我將不勝感激。我想學習。 – 2014-10-30 19:10:11