Rails4选择 - 如何为站点用户设置默认选定项目?

时间:2014-10-30 17:38:38

标签: ruby-on-rails forms date select

我在创建配置文件时获取了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' %>

每次性别都是男性 有人可以分享如何设置用户在注册时提供的性别吗?

例如,
当女性用户注册时,我希望在选择更新个人资料时选择女性。

2 个答案:

答案 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。