Я пытаюсь импортировать большую часть записей, связанных с пользователем, используя активную запись-импорт.Здесь Роль имеет и имеет много отношения с пользователем.При импорте пользовательские данные импортируются успешно.Но role_ids не импортируются ..
Я пытался получить действительные почтовые идентификаторы данных и найти пользователей по этим действительным почтовым идентификаторам и обновить идентификаторы ролей ... Он получил успех ... Мне нужно знать некоторые другие методы, доступные с использованиемимпорт активных записей.
пользовательские параметры: -
def user_params
params.require(:user).permit(:email, :first_name, :last_name, role_ids: [])
end
метод импорта: -
def import(import)
valid_rows = []
all_roles = {}
file = Paperclip.io_adapters.for(self.file).read
Role.all.select(:id, :name).map { |role| all_roles[role.name.gsub(/[^A-Za-z]/, '').downcase] = role.id }
CSV.parse(file, headers: true, skip_blanks: true, header_converters: ->(header) { header.strip }, converters: ->(data) { data ? data.strip : nil }).each do |row|
user_role_name = (row['roles'].gsub(/[^A-Za-z]/, '').downcase || [])
role_ids = [all_roles[user_role_name]] || []
attributes = { first_name: row['first_name'], last_name: row['last_name'], email: row['email'], role_ids: role_ids}
row = User.new(attributes)
if User.new(attributes).valid?
valid_rows << row
end
User.import valid_rows
end
Может кто-нибудь объяснить, как импортировать идентификаторы ролей с пользовательскими данными при импорте!!