Ruby on rails Rails4选择-如何为站点用户设置默认选定项?
我在创建个人资料的过程中获取性别信息,并将其存储在数据库中。 在更新配置文件页面中,我希望选择正确性别的用户 我正在我的webapp中设置性别如下。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
我使用布尔类型表示性别。
首先,我在迁移文件中添加了新列 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:)这非常有效。再次感谢