【问题标题】:Rails4 Select - How to set the default selected item for users of a site?Rails4 Select - 如何为站点用户设置默认选中项?
【发布时间】:2014-12-26 21:27:10
【问题描述】:

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

我在我的网络应用程序中设置性别如下。
我正在为 Gender 使用布尔类型。
首先,我在迁移文件中添加了新列

db/migrate/[时间戳]_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

决定创建选择框,因为我反复尝试后无法创建单选按钮

app/models/user.rb

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

这是从我的注册表单视图中选择框 sn-p

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

我有相同的选择框 sn-p 更新个人资料表单

app/views/users/edit.html.erb

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

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

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

【问题讨论】:

    标签: ruby-on-rails forms date select


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,但它不会也将男性设置为女性用户的选择吗?
    • 是的,但是你可以通过任何你喜欢的东西来代替“男性”。这只是一个例子。
    • 是的@maximus 这也有效,但我不知道如何。非常感谢。我们不是明确说要选择男性吗?这是如何运作的?如果您能指点我阅读的资源,我将不胜感激。我想学习。
    【解决方案2】:

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

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

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

    【讨论】:

    • 非常感谢@geeky_sh :) 这非常有效。再次感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-12
    • 2014-11-27
    • 1970-01-01
    • 2012-11-16
    • 2013-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多