我在不是 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 应用程序中按应有的方式执行并制作一个新的扩展列,但我希望有人能帮助我解决这个问题。感谢您的帮助!