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

Ruby on rails Rails4选择-如何为站点用户设置默认选定项?,ruby-on-rails,forms,date,select,Ruby On Rails,Forms,Date,Select,我在创建个人资料的过程中获取性别信息,并将其存储在数据库中。 在更新配置文件页面中,我希望选择正确性别的用户 我正在我的webapp中设置性别如下。 我使用布尔类型表示性别。 首先,我在迁移文件中添加了新列 db/migrate/[timestamp]\u将管理添加到用户。rb class AddAdminToUsers < ActiveRecord::Migration def change add_column :users, :admin, :boolean, defau

我在创建个人资料的过程中获取性别信息,并将其存储在数据库中。 在更新配置文件页面中,我希望选择正确性别的用户

我正在我的webapp中设置性别如下。
我使用布尔类型表示性别。
首先,我在迁移文件中添加了新列

db/migrate/[timestamp]\u将管理添加到用户。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
决定创建选择框,因为我在重复尝试后无法创建单选按钮

app/models/user.rb

class User < ActiveRecord::Base
.
.
GENDER_TYPES = [ ["Male","0"], [ "Female","1" ] ]
validates_inclusion_of :is_female, in: [true, false]
.
.
<%= form_for(@user) do |f| %>
<%= f.label :is_female, "Gender" %>
<%= f.select :is_female, User::GENDER_TYPES, class: 'form-control' %>
class用户
这是“我的注册表单”视图中的“选择框”片段

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' %>

我有相同的选择框代码段更新配置文件表单

app/views/users/edit.html.erb

class User < ActiveRecord::Base
.
.
GENDER_TYPES = [ ["Male","0"], [ "Female","1" ] ]
validates_inclusion_of :is_female, in: [true, false]
.
.
<%= form_for(@user) do |f| %>
<%= f.label :is_female, "Gender" %>
<%= f.select :is_female, User::GENDER_TYPES, class: 'form-control' %>

每次性别都是男性。
任何人都可以分享如何设置用户在注册时给出的性别吗

例如,

当女性用户注册时,我希望在她们选择更新配置文件时选择女性。

可以通过
selected
html属性完成,如下所示

 <%= f.select :is_female, User::GENDER_TYPES, class: 'form-control', :selected => "male" %>
“男性”%>

可以通过如下所示的
选定的
html属性来完成

 <%= f.select :is_female, User::GENDER_TYPES, class: 'form-control', :selected => "male" %>
“男性”%>

我认为这是因为当您使用布尔值-true/false表示
是女性时,将性别类型的选项设置为0和1。试试这个

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

这应该是可行的,因为现在我们严格地使用布尔值,而不是0或1。

我认为这是因为在使用布尔值-true/false表示
是女性时,您将性别类型的选项设置为0和1。试试这个

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

这应该可以正常工作,因为我们现在严格使用布尔值,而不是0或1。

谢谢,但是它不会也为女性用户将男性设置为选中的吗?是的,但是您可以通过任何您喜欢的方式来代替“男性”。这只是一个例子。是的@maximus这也起作用,但我不知道怎么做。非常感谢你。我们不是明确地说要选择男性吗?这是怎么回事?如果您能指点我阅读参考资料,我将不胜感激。我想学习。谢谢,但是它会不会也将男性设置为女性用户的选择?是的,但是你可以通过任何你喜欢的来代替“男性”。这只是一个例子。是的@maximus这也起作用,但我不知道怎么做。非常感谢你。我们不是明确地说要选择男性吗?这是怎么回事?如果您能指点我阅读参考资料,我将不胜感激。我想学习。非常感谢你@geeky_-sh:)这非常有效。再次感谢您@geeky_-sh:)这非常有效。再次感谢