removes user_id column from User model to use idiomatic Rails automatic IDs

This commit is contained in:
Joseph Mastey
2017-10-07 09:34:26 -06:00
parent c4f0b91534
commit b6c2259b88
29 changed files with 421 additions and 430 deletions
@@ -0,0 +1,5 @@
class RemoveUsersUserId < ActiveRecord::Migration[5.1]
def change
remove_column :users, :user_id, :integer
end
end
+47 -48
View File
@@ -11,12 +11,12 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 20140408185601) do
ActiveRecord::Schema.define(version: 20171007010129) do
create_table "analytics", force: :cascade do |t|
t.string "ip_address"
t.string "referrer"
t.string "user_agent"
t.string "ip_address"
t.string "referrer"
t.string "user_agent"
t.datetime "created_at"
t.datetime "updated_at"
end
@@ -27,92 +27,91 @@ ActiveRecord::Schema.define(version: 20140408185601) do
end
create_table "key_managements", force: :cascade do |t|
t.string "iv"
t.integer "user_id"
t.string "iv"
t.integer "user_id"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "messages", force: :cascade do |t|
t.integer "creator_id"
t.integer "receiver_id"
t.text "message"
t.boolean "read"
t.integer "creator_id"
t.integer "receiver_id"
t.text "message"
t.boolean "read"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "paid_time_offs", force: :cascade do |t|
t.integer "user_id"
t.integer "sick_days_taken"
t.integer "sick_days_earned"
t.integer "pto_taken"
t.integer "pto_earned"
t.integer "user_id"
t.integer "sick_days_taken"
t.integer "sick_days_earned"
t.integer "pto_taken"
t.integer "pto_earned"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "pays", force: :cascade do |t|
t.integer "user_id"
t.string "bank_account_num"
t.string "bank_routing_num"
t.integer "percent_of_deposit"
t.integer "user_id"
t.string "bank_account_num"
t.string "bank_routing_num"
t.integer "percent_of_deposit"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "performances", force: :cascade do |t|
t.integer "user_id"
t.date "date_submitted"
t.integer "score"
t.string "comments"
t.integer "reviewer"
t.integer "user_id"
t.date "date_submitted"
t.integer "score"
t.string "comments"
t.integer "reviewer"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "retirements", force: :cascade do |t|
t.string "total"
t.string "employee_contrib"
t.string "employer_contrib"
t.integer "user_id"
t.string "total"
t.string "employee_contrib"
t.string "employer_contrib"
t.integer "user_id"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "schedules", force: :cascade do |t|
t.string "event_type"
t.date "date_begin"
t.date "date_end"
t.string "event_name"
t.string "event_desc"
t.integer "user_id"
t.string "event_type"
t.date "date_begin"
t.date "date_end"
t.string "event_name"
t.string "event_desc"
t.integer "user_id"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "users", force: :cascade do |t|
t.string "email"
t.string "password"
t.boolean "admin"
t.string "first_name"
t.string "last_name"
t.integer "user_id"
t.string "email"
t.string "password"
t.boolean "admin"
t.string "first_name"
t.string "last_name"
t.datetime "created_at"
t.datetime "updated_at"
t.string "auth_token"
t.string "auth_token"
end
create_table "work_infos", force: :cascade do |t|
t.integer "user_id"
t.string "income"
t.string "bonuses"
t.integer "years_worked"
t.string "SSN"
t.date "DoB"
t.integer "user_id"
t.string "income"
t.string "bonuses"
t.integer "years_worked"
t.string "SSN"
t.date "DoB"
t.datetime "created_at"
t.datetime "updated_at"
t.binary "encrypted_ssn"
t.binary "encrypted_ssn"
end
end
+271 -277
View File
@@ -4,314 +4,308 @@
#
users = [
{
email: "admin@metacorp.com",
admin: true,
password: "admin1234",
password_confirmation: "admin1234",
first_name: "Admin",
last_name: "",
user_id: 1
},
{
email: "jmmastey@metacorp.com",
admin: false,
password: "railsgoat!",
password_confirmation: "railsgoat!",
first_name: "Joseph",
last_name: "Mastey",
user_id: 2
},
{
email: "jim@metacorp.com",
admin: false,
password: "alohaowasp",
password_confirmation: "alohaowasp",
first_name: "Jim",
last_name: "Manico",
user_id: 3
},
{
email: "mike@metacorp.com",
admin: false,
password: "motocross1445",
password_confirmation: "motocross1445",
first_name: "Mike",
last_name: "McCabe",
user_id: 4
},
{
email: "ken@metacorp.com",
admin: false,
password: "citrusblend",
password_confirmation: "citrusblend",
first_name: "Ken",
last_name: "Johnson",
user_id: 5
},
{
email: "admin2@metacorp.com",
admin: false,
password: "adminadmin",
password_confirmation: "adminadmin",
first_name: "Admin2",
last_name: "",
user_id: 6
}
{
email: "admin@metacorp.com",
admin: true,
password: "admin1234",
password_confirmation: "admin1234",
first_name: "Admin",
last_name: "",
},
{
:email => "jmmastey@metacorp.com",
:admin => false,
:password => "railsgoat!",
:password_confirmation => "railsgoat!",
:first_name => "Joseph",
:last_name => "Mastey",
},
{
email: "jack@metacorp.com",
admin: false,
password: "yankeessuck",
password_confirmation: "yankeessuck",
first_name: "Jack",
last_name: "Mannino",
},
{
email: "jim@metacorp.com",
admin: false,
password: "alohaowasp",
password_confirmation: "alohaowasp",
first_name: "Jim",
last_name: "Manico",
},
{
email: "mike@metacorp.com",
admin: false,
password: "motocross1445",
password_confirmation: "motocross1445",
first_name: "Mike",
last_name: "McCabe",
},
{
email: "ken@metacorp.com",
admin: false,
password: "citrusblend",
password_confirmation: "citrusblend",
first_name: "Ken",
last_name: "Johnson",
},
{
email: "admin2@metacorp.com",
admin: false,
password: "adminadmin",
password_confirmation: "adminadmin",
first_name: "Admin2",
last_name: "",
}
]
retirements = [
{
user_id: 2,
employee_contrib: "1000",
employer_contrib: "2000",
total: "4500"
},
{
user_id: 3,
employee_contrib: "8000",
employer_contrib: "16000",
total: "30000"
},
{
user_id: 4,
employee_contrib: "10000",
employer_contrib: "20000",
total: "40000"
},
{
user_id: 5,
employee_contrib: "3000",
employer_contrib: "6000",
total: "12500"
}
{
user: "jack@metacorp.com",
employee_contrib: "1000",
employer_contrib: "2000",
total: "4500"
},
{
user: "jim@metacorp.com",
employee_contrib: "8000",
employer_contrib: "16000",
total: "30000"
},
{
user: "mike@metacorp.com",
employee_contrib: "10000",
employer_contrib: "20000",
total: "40000"
},
{
user: "ken@metacorp.com",
employee_contrib: "3000",
employer_contrib: "6000",
total: "12500"
}
]
paid_time_off = [
{
user_id: 2,
sick_days_taken: 2,
sick_days_earned: 5,
pto_taken: 5,
pto_earned: 30
},
{
user_id: 3,
sick_days_taken: 3,
sick_days_earned: 6,
pto_taken: 3,
pto_earned: 20
},
{
user_id: 4,
sick_days_taken: 2,
sick_days_earned: 5,
pto_taken: 5,
pto_earned: 30
},
{
user_id: 5,
sick_days_taken: 1,
sick_days_earned: 5,
pto_taken: 10,
pto_earned: 30
}
{
user: "jack@metacorp.com",
sick_days_taken: 2,
sick_days_earned: 5,
pto_taken: 5,
pto_earned: 30
},
{
user: "jim@metacorp.com",
sick_days_taken: 3,
sick_days_earned: 6,
pto_taken: 3,
pto_earned: 20
},
{
user: "mike@metacorp.com",
sick_days_taken: 2,
sick_days_earned: 5,
pto_taken: 5,
pto_earned: 30
},
{
user: "ken@metacorp.com",
sick_days_taken: 1,
sick_days_earned: 5,
pto_taken: 10,
pto_earned: 30
}
]
]
schedule = [
{
user: "jack@metacorp.com",
date_begin: Date.new(2014, 7, 30),
date_end: Date.new(2014, 8, 2),
event_type: "pto",
event_desc: "vacation to france",
event_name: "My 2014 Vacation"
},
{
user: "jim@metacorp.com",
date_begin: Date.new(2013, 9, 1),
date_end: Date.new(2013, 9, 12),
event_type: "pto",
event_desc: "Going Home to see folks",
event_name: "Visit Parents"
},
{
user: "mike@metacorp.com",
date_begin: Date.new(2013, 9, 13),
date_end: Date.new(2013, 9, 20),
event_type: "pto",
event_desc: "Taking kids to Grand Canyon",
event_name: "AZ Trip"
},
{
user: "ken@metacorp.com",
date_begin: Date.new(2013, 12, 20),
date_end: Date.new(2013, 12, 30),
event_type: "pto",
event_desc: "Xmas Staycation",
event_name: "Christmas Leave"
}
]
schedule = [
{
user_id: 2,
date_begin: Date.new(2014, 7, 30),
date_end: Date.new(2014, 8, 2),
event_type: "pto",
event_desc: "vacation to france",
event_name: "My 2014 Vacation"
work_info = [
{
user: "jack@metacorp.com",
income: "$50,000",
bonuses: "$10,000",
years_worked: 2,
SSN: "555-55-5555",
DoB: "01-01-1980"
},
{
user: "jim@metacorp.com",
income: "$40,000",
bonuses: "$10,000",
years_worked: 1,
SSN: "333-33-3333",
DoB: "01-01-1979"
},
{
user: "mike@metacorp.com",
income: "$60,000",
bonuses: "$12,000",
years_worked: 3,
SSN: "444-44-4444",
DoB: "01-01-1981"
},
{
user: "ken@metacorp.com",
income: "$30,000",
bonuses: "7,000",
years_worked: 1,
SSN: "222-22-2222",
DoB: "01-01-1982"
}
]
},
{
user_id: 3,
date_begin: Date.new(2013, 9, 1),
date_end: Date.new(2013, 9, 12),
event_type: "pto",
event_desc: "Going Home to see folks",
event_name: "Visit Parents"
},
{
user_id: 4,
date_begin: Date.new(2013, 9, 13),
date_end: Date.new(2013, 9, 20),
event_type: "pto",
event_desc: "Taking kids to Grand Canyon",
event_name: "AZ Trip"
},
{
user_id: 5,
date_begin: Date.new(2013, 12, 20),
date_end: Date.new(2013, 12, 30),
event_type: "pto",
event_desc: "Xmas Staycation",
event_name: "Christmas Leave"
}
]
work_info = [
{
user_id: 2,
income: "$50,000",
bonuses: "$10,000",
years_worked: 2,
SSN: "555-55-5555",
DoB: "01-01-1980"
},
{
user_id: 3,
income: "$40,000",
bonuses: "$10,000",
years_worked: 1,
SSN: "333-33-3333",
DoB: "01-01-1979"
},
{
user_id: 4,
income: "$60,000",
bonuses: "$12,000",
years_worked: 3,
SSN: "444-44-4444",
DoB: "01-01-1981"
},
{
user_id: 5,
income: "$30,000",
bonuses: "7,000",
years_worked: 1,
SSN: "222-22-2222",
DoB: "01-01-1982"
}
]
performance = [
{
user_id: 2,
reviewer: 1,
comments: "Great job! You are my hero",
date_submitted: Date.new(2012, 01, 01),
score: 5
},
{
user_id: 2,
performance = [
{
user: "jack@metacorp.com",
reviewer: 1,
comments: "Great job! You are my hero",
date_submitted: Date.new(2012, 01, 01),
score: 5
},
{
user: "jack@metacorp.com",
reviewer: 1,
comments: "Once again, you've done a great job this year. We greatly appreciate your hard work.",
date_submitted: Date.new(2013, 01, 01),
score: 5
},
{
user_id: 3,
reviewer: 1,
comments: "Great worker, great attitude for this newcomer!",
date_submitted: Date.new(2013, 01, 01),
score: 5
},
{
user_id: 4,
reviewer: 1,
comments: "Wow, right out of the gate we've been very impressed but unfortunately, our system doesn't allow us to give you a full 5.0 because other ppl have gotten 5.0 ratings.",
date_submitted: Date.new(2011, 01, 01),
score: 4
},
{
user_id: 4,
reviewer: 1,
comments: "We highly recommend promotion for this employee! Consistent performer with proven leadership qualities.",
date_submitted: Date.new(2012, 01, 01),
score: 5
},
{
user_id: 4,
reviewer: 1,
comments: "Right out of the gate, Mike has made incredible moves as a newly appointed leader. His only improvement would be more cowbell. Not enough of it.",
date_submitted: Date.new(2013, 01, 01),
score: 4
},
{
user_id: 5,
reviewer: 1,
comments: "Ehh, you are okay, we will let you stay..... barely",
date_submitted: Date.new(2013, 01, 01),
score: 2
}
]
},
{
user: "jim@metacorp.com",
reviewer: 1,
comments: "Great worker, great attitude for this newcomer!",
date_submitted: Date.new(2013, 01, 01),
score: 5
},
{
user: "mike@metacorp.com",
reviewer: 1,
comments: "Wow, right out of the gate we've been very impressed but unfortunately, our system doesn't allow us to give you a full 5.0 because other ppl have gotten 5.0 ratings.",
date_submitted: Date.new(2011, 01, 01),
score: 4
},
{
user: "mike@metacorp.com",
reviewer: 1,
comments: "We highly recommend promotion for this employee! Consistent performer with proven leadership qualities.",
date_submitted: Date.new(2012, 01, 01),
score: 5
},
{
user: "mike@metacorp.com",
reviewer: 1,
comments: "Right out of the gate, Mike has made incredible moves as a newly appointed leader. His only improvement would be more cowbell. Not enough of it.",
date_submitted: Date.new(2013, 01, 01),
score: 4
},
{
user: "ken@metacorp.com",
reviewer: 1,
comments: "Ehh, you are okay, we will let you stay..... barely",
date_submitted: Date.new(2013, 01, 01),
score: 2
}
]
messages = [
{
receiver_id: 2,
creator_id: 5,
message: "Your benefits have been updated.",
read: false
},
{
receiver_id: 3,
creator_id: 4,
message: "Please update your profile.",
read: false
},
{
receiver_id: 4,
creator_id: 3,
message: "Welcome to Railsgoat.",
read: false
},
{
receiver_id: 5,
creator_id: 2,
message: "Hello friend.",
read: false
}
]
messages = [
{
creator: "ken@metacorp.com",
receiver: "jack@metacorp.com",
message: 'Your benefits have been updated.',
read: false
},
{
creator: "mike@metacorp.com",
receiver: "jim@metacorp.com",
message: 'Please update your profile.',
read: false
},
{
creator: "jim@metacorp.com",
receiver: "mike@metacorp.com",
message: 'Welcome to Railsgoat.',
read: false
},
{
creator: "jack@metacorp.com",
receiver: "ken@metacorp.com",
message: 'Hello friend.',
read: false
}
]
users.each do |user_info|
user = User.new(user_info.reject { |k| k == :user_id })
user.user_id = user_info[:user_id]
user.save!
user_map = users.each_with_object({}) do |user_info, h|
h[user_info[:email]] = User.create!(user_info).id
end
retirements.each do |r|
ret = Retirement.new(r.reject { |k| k == :user_id})
ret.user_id = r[:user_id]
ret.save!
r[:user_id] = user_map.fetch(r.delete(:user))
Retirement.create!(r)
end
paid_time_off.each do |pto|
ptoff = PaidTimeOff.new(pto.reject { |k| k == :user_id})
ptoff.user_id = pto[:user_id]
ptoff.save!
pto[:user_id] = user_map.fetch(pto.delete(:user))
PaidTimeOff.create!(pto)
end
schedule.each do |event|
sched = Schedule.new(event.reject { |k| k == :user_id})
sched.user_id = event[:user_id]
sched.save!
event[:user_id] = user_map.fetch(event.delete(:user))
Schedule.create!(event)
end
performance.each do |perf|
p = Performance.new(perf.reject { |k| k == :user_id})
p.user_id = perf[:user_id]
p.save!
perf[:user_id] = user_map.fetch(perf.delete(:user))
Performance.create!(perf)
end
messages.each do |message|
m = Message.new(message.reject { |k| k == :creator_id})
m.creator_id = message[:creator_id]
m.save!
message[:creator_id] = user_map.fetch(message.delete(:creator))
message[:receiver_id] = user_map.fetch(message.delete(:receiver))
Message.create!(message)
end
work_info.each do |wi|
info = WorkInfo.new(wi.reject { |k| k == :user_id })
info.user_id = wi[:user_id]
info.save!
wi[:user_id] = user_map.fetch(wi.delete(:user))
WorkInfo.create!(wi)
end