Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def self.import(file)
- CSV.foreach(file.path, :headers => true) do |row|
- # import the row as a hash
- user_hash = row.to_hash
- # set user variable to query if user exists
- user = User.where(email: user_hash["email"])
- # check if user (email) already exists, if not create user
- if user.count < 1
- # exclude the fields not needed
- #u = User.create!(user_hash.except("Name","first_name","mi","last_name","suffix","caf_join_date"))
- # map csv headers to database fields, downcase last_name
- u = User.create!(username: user_hash["Current ID"], email: user_hash["Email Number"], password: user_hash["Last Name"].downcase )
- Assignment.create!({ :user_id => u.id, :role_id => 3 })
- user_hash[:user_id] = u.id
- # create a member record with values from CSV
- Member.create!(last_name: user_hash["Last Name"], first_name: user_hash["Name"].split[0], user_id: user_hash[:user_id], caf_col_no: user_hash["Current ID"], caf_join_date: Date.strptime(user_hash["Current Joined On Date"], "%m/%d/%y").strftime('%Y-%m-%d'))
- # create a hash of values to display as successful
- @member_upload = {:last_name => user_hash["Last Name"], :first_name => user_hash["Name"].split[0], :user_id => user_hash[:user_id], :caf_col_no => user_hash["Current ID"], :caf_join_date => Date.strptime(user_hash["Current Joined On Date"], "%m/%d/%y").strftime('%Y-%m-%d')}
- end
- end
- end
Add Comment
Please, Sign In to add comment