3

运行 Rails 3.2.8,设计 2.1.2。

我注意到迁移包含空白默认值:

class DeviseCreateUsers < ActiveRecord::Migration
  def change
    create_table(:users) do |t|
      ## Database authenticatable
      t.string :email,              :null => false, :default => ""
      t.string :encrypted_password, :null => false, :default => ""
      ......

但是该 schema.rb 包含其他内容:

  create_table "users", :force => true do |t|
    t.string   "email",                  :default => "''''", :null => false
    t.string   "encrypted_password",     :default => "''''", :null => false
    .....

这些默认值 ,''''出现在我的注册表单等中。为什么会发生这种情况?通过另一个迁移更改这些默认值是否有任何风险?

4

1 回答 1

0

我认为您可以毫无问题地更改默认值。

我的 schema.rb 文件之一有以下几行(我认为它工作正常):

  create_table "users", :force => true do |t|
    t.string   "email",                               :default => "", :null => false
    t.string   "encrypted_password",   :limit => 128, :default => "", :null => false
于 2012-09-18T17:46:25.510 回答