我在创建配置文件时获取了Gender并将其存储在数据库中。 在更新配置文件页面中,我希望选择正确的用户性别。
我在webapp中设置了如下性别 我对性别使用布尔类型 首先,我在迁移文件中添加了新列
db / migrate / [timestamp] _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]
.
.
这是我的注册表单
视图中的选择框摘录app / views / users / 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' %>
每次性别都是男性 有人可以分享如何设置用户在注册时提供的性别吗?
例如,
当女性用户注册时,我希望在选择更新个人资料时选择女性。
答案 0 :(得分:2)
可以通过selected
html属性完成,如下所示
<%= f.select :is_female, User::GENDER_TYPES, class: 'form-control', :selected => "male" %>
答案 1 :(得分:2)
我认为这是因为您正在设置性别类型的选项为0和1,而您使用布尔值 - true / false来表示is_female
。试试这个
class User < ActiveRecord::Base
GENDER_TYPES = [['Male', true], ['Female', false]]
...
现在我们正在严格使用布尔值 - 而不是0或1。