Created
October 5, 2016 07:57
-
-
Save luciuschoi/827a3011b221425fe8ac48514945c7c6 to your computer and use it in GitHub Desktop.
trevari_import_passed_membership
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def import_passed_membership(csv_file="trevari_passed_membership.csv") | |
csv_data = open(csv_file) | |
csv_rows = CSV.parse(csv_data.read.force_encoding("utf-8"), { headers: true, | |
converters: :numeric, | |
header_converters: :symbol }) | |
csv_rows.each do |m| | |
p m | |
c = Club.find(m[3]) | |
# raise unless c | |
u = User.where(phone_number: m[1]).first | |
# raise unless u | |
c.applications.where(user_id: u.id, status: Application.statuses["입금 확인"]).first_or_create | |
c.memberships.where(user_id: u.id).first_or_create | |
u.add_role(:member) | |
end | |
end |
10번 줄을 이렇게 변경하니까 에러가 없어졌습니다.
begin
c = Club.find(m[3])
rescue ActiveRecord::RecordNotFound => e
next
end
최종본은 ...
def import_passed_membership(csv_file="trevari_passed_membership.csv")
csv_data = open(csv_file)
csv_rows = CSV.parse(csv_data.read.force_encoding("utf-8"), { headers: true,
converters: :numeric,
header_converters: :symbol })
csv_rows.each do |m|
p m
# raise unless c
begin
c = Club.find(m[3])
rescue ActiveRecord::RecordNotFound => e
next
end
u = User.where(phone_number: m[1]).first
# raise unless u
c.applications.where(user_id: u.id, status: Application.statuses["입금 확인"]).first_or_create
c.memberships.where(user_id: u.id).first_or_create
u.add_role(:member)
end
end
def import_passed_users(csv_file="trevari_passed_users.csv")
csv_data = open(csv_file)
csv_rows = CSV.parse(csv_data.read.force_encoding("utf-8"), { headers: true,
converters: :numeric,
header_converters: :symbol })
users = {}
csv_rows.each do |u|
users[u[1]] = {
name: u[0],
phone_number: u[1],
email: u[2],
fb_name: u[3]
}
end
users.each do |phone, user|
if user[:email].blank?
user[:email] = "#{user[:phone_number].gsub("-","_")}@gmail.com"
end
if user[:fb_name].blank?
user[:fb_name] = "-"
end
u = User.where(email: user[:email], phone_number: user[:phone_number]).first_or_initialize
u.name = user[:name]
puts u.name
u.fb_name = user[:fb_name]
u.password = "a"*6
u.agreement = true
if u.changed?
puts "#{u.name} updated"
u.save
end
end
end
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
c 를 찾지 못하면 다음으로 넘어가도록 하면 되나요?