Add auto-increment via migration in rails
2 answers
You can directly modify your mysql table. Try the following:
Alter table Tablename modify column ColumnName int(11) auto_increment;
You can refer to Auto Increment Non-Primary Key Field in Ruby on Rails to complete its rails path.
You can also come up with a rather silly hack, something like your model, inside the create method:
def self.create(user, user_number)
user = User.new #update fields
user.user_number += 1
user.save
end
However, I will ask anyway, why don't you use yourself id
how user_number
?
+1
source to share
class CreateSimpleModels < ActiveRecord::Migration
def self.up
create_table :simple_models do |t|
t.string :name
t.integer :user_number
t.timestamps
end
execute "CREATE SEQUENCE simple_models_user_number_seq OWNED BY
simple_models.user_number INCREMENT BY 1 START WITH 1"
end
def self.down
drop_table :simple_models
execute "DELETE SEQUENCE simple_models_user_number_seq"
end
end
+1
source to share