Rails import CSV with headers that have long names and map to association fields
billy-whizz opened this issue · 0 comments
I have a CSV of users to upload, with one of the headers named as country of origin of user. This should be mapped to a column in the users table called country_id
during importing. country has_many users
. I am struggling to import such kind of column headers in the csv which map to an association and which have funny names. Many days of trying but I am yet to crack it. Here is the method I am using to import data:
def load_imported_users
spreadsheet = open_spreadsheet
header = spreadsheet.row(1)
(2..spreadsheet.last_row).map do |i|
row = Hash[[header, spreadsheet.row(i)].transpose]
user = User.find_by_national_id(row["national_id"]) || User.new
user.attributes = row.to_hash
user
end
end
Help would be appreciated, thanks!