我在数据库中有一个不是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应用程序中执行,并制作新的扩展列,但我很感激有人帮我解决了这个问题。谢谢你的帮助!