У меня есть предопределенный rtf
файл шаблона RTF_Template.rtf
следующим образом:
{\rtf1\ansi\deff0{\fonttbl{\f0 \fswiss Helvetica;}{\f1 Courier;}}
{\colortbl;\red255\green0\blue0;\red0\green0\blue255;}
\widowctrl\hyphauto
{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs36 FirstName LastName\par}
{\pard \ql \f0 \sa180 \li0 \fi0 {\b UEI:} 103910\par}
{\pard \ql \f0 \sa180 \li0 \fi0 {\b Sex:\u160?}Female\par}
{\pard \ql \f0 \sa180 \li0 \fi0 {\b DOB:} 10/31/1980\par}
{\pard \ql \f0 \sa180 \li0 \fi0 {\b Email:} sample@email.com \par}
Я делаю изменения в этом формате что-то вроде:
rtf_template = Rails.root.join('doc', 'rtf_templates', 'RTF_Template.rtf')
content = File.read(rtf_template)
content.gsub!('FirstName LastName', @student.full_name)
content.gsub!('UEI', StudentIdentifier.primary_identifier.first&.name)
content.gsub!('103910', @student.primary_identifier&.value)
content.gsub!('Female', @student.gender)
content.gsub!('10/31/1980', @student.date_of_birth.strftime('%m-%d-%Y'))
content.gsub!('sample@email.com', @student.email)
Проблема:
В настоящее время я показываю только первый StudentIdentifier
, который является основным в строке: content.gsub!('UEI', StudentIdentifier.primary_identifier.first&.name)
и значение настройки для того же идентификатора в строке: content.gsub!('103910', @student.primary_identifier&.value)
Пользователь может иметь несколько идентификаторов и значение для каждого идентификатора.Я могу получить доступ ко всем этим идентификаторам, используя цикл @student.identifiers.each do |p_id|
, затем имя идентификатора в p_id[0]
и значение в p_id[1]
Я хочу показать все идентификаторы в одном месте (после имени, до секса) втот же шаблон.