1

我在不是 rails automagic 的数据库中有一个 id 列时遇到问题。基本上情况是用户表必须在 5000 到 7000 之间,并且还有其他外部规定不允许它自动递增这是迁移(在控制台中神奇地工作):

class CreateUsers < ActiveRecord::Migration
  def change
    create_table :users, id: false do |t|
      t.integer :id, null: false
      t.string :firstname, null: false
      t.string :lastname, null: false
      t.string :username, null: false
      t.boolean :active, null: false, default: true
      t.date :hiredate, null: false
      t.date :termdate

      t.timestamps
    end

    add_index :users, [:id], :unique => true

    execute "ALTER TABLE users ADD PRIMARY KEY (id);"
  end
end

我遇到的问题是为了在工厂创建用户而进行测试,我必须有一个开始救援块。第一次失败,第二次完美运行。我不知道为什么会这样。这是 users_spec.rb 的第一部分:

describe User do
    before(:all)do
        begin 
            @user = FactoryGirl.create(:user)
        rescue
            @user = FactoryGirl.create(:user)
        end
    end
end

我正在考虑让 id 列在 rails 应用程序中按应有的方式执行并制作一个新的扩展列,但我希望有人能帮助我解决这个问题。感谢您的帮助!

4

0 回答 0