Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 3.2中空表列的最佳实践_Ruby On Rails_Database_Ruby On Rails 3_Database Design_Ruby On Rails 3.2 - Fatal编程技术网

Ruby on rails Rails 3.2中空表列的最佳实践

Ruby on rails Rails 3.2中空表列的最佳实践,ruby-on-rails,database,ruby-on-rails-3,database-design,ruby-on-rails-3.2,Ruby On Rails,Database,Ruby On Rails 3,Database Design,Ruby On Rails 3.2,我对Rails中的数据库数据有一个问题 空表列的最佳实践是什么 我没有默认的一些列,这些列对于用户输入来说不是必须的,例如 User model ID | name | drink_of_choice | favourite_color ----------------------------------------------------- 1 | Benji | coffee | yellow 2 | Becky | tea

我对Rails中的数据库数据有一个问题

空表列的最佳实践是什么

我没有默认的一些列,这些列对于用户输入来说不是必须的,例如

User model
ID | name       | drink_of_choice |  favourite_color
-----------------------------------------------------
1  | Benji      | coffee          |  yellow
2  | Becky      | tea             |  NULL
-----------------------------------------------------
正如你所看到的,贝基最喜欢的颜色是空的,因为贝基还没有输入她最喜欢的颜色

Rails开发人员是否将:default=>''设置为保存空字符串并在数据库中避免NULL的最佳实践

谢谢你的耐心,我也很感激你给我的建议


WD

如果适合您,请尝试此宝石:


这也有助于u->

尝试这款适合您的宝石:


这也有助于你有很多选择

1-第一个是强制用户输入一些数据。因此,您可以使用:

4-另一个选择是在迁移文件中定义它,但我并不喜欢它(一点也不灵活):

class CreateUser < ActiveRecord::Migration
  def change
    create_table :users do |t|
      ...
      t.string :favourite_color, default: ''
      ...
      t.timestamps
    end
  end
end
class CreateUser
最好的方法是什么

更准确地说,遵循Rails最佳实践:胖模型、瘦控制器。我会选择选项2


编辑-在决定列的默认值之前,请考虑它的含义。如果意思是没有输入数据,我认为您应该将其保留为空。感谢的评论,请看一看。

您有很多选择

1-第一个是强制用户输入一些数据。因此,您可以使用:

4-另一个选择是在迁移文件中定义它,但我并不喜欢它(一点也不灵活):

class CreateUser < ActiveRecord::Migration
  def change
    create_table :users do |t|
      ...
      t.string :favourite_color, default: ''
      ...
      t.timestamps
    end
  end
end
class CreateUser
最好的方法是什么

更准确地说,遵循Rails最佳实践:胖模型、瘦控制器。我会选择选项2


编辑-在决定列的默认值之前,请考虑它的含义。如果意思是没有输入数据,我认为您应该将其保留为空。感谢的评论,请看一看。

在Rails视图中,我使用如下内容:

<%= input unless input.blank? %>


并保留数据库中的数据。

在Rails视图中,我使用如下内容:

<%= input unless input.blank? %>


并保留数据库中的数据。

+1我同意您的总体意见(“许多选项”),但我认为将字符串
写为空不是一个好主意。表示空/未设置/单位化字段正是空值的目的。还有人可能会认为代理值属于视图,比如
感谢Gabriel和Daniel的洞察力,让我思考选项和数据的意义。由于数据不完整,我选择了查看选项。感谢您的帮助,再次感谢。+1我同意您的总体意见(“许多选项”),但我认为将字符串
写为空
不是一个好主意。表示空/未设置/单位化字段正是空值的目的。还有人可能会认为代理值属于视图,比如
感谢Gabriel和Daniel的洞察力,让我思考选项和数据的意义。由于数据不完整,我选择了查看选项。谢谢你的帮助,再次谢谢。谢谢拉索尔。谢谢你给我的宝石链接,更重要的是告诉我存在的方法。欢迎。。。“很高兴帮助你。”瓦斯比说,谢谢拉索尔。谢谢你给我的宝石链接,更重要的是告诉我存在的方法。欢迎。。。很高兴能帮助你。@WasabiDeveloper
<%= input unless input.blank? %>