Я пытаюсь преобразовать строковое значение в имя атрибута, принадлежащего объекту. Например, в следующем коде мне нужны все строковые значения в column_array
, превращенные в имена атрибутов. Имена "student_identification"
, "email"
и т.д. Являются фактическими именами столбцов моей таблицы Student
. В реальном сценарии column_array
будет установлен пользователем (пометив флажки). И new_array
будет заменен на csv
, так как я хочу, чтобы данные перешли в файл csv.
В настоящий момент я действительно борюсь за следующую строку:
new_array << r."#{column_array[i]}"
Я хочу, чтобы "#{column_array[i]}"
превращался в имя атрибута, чтобы я мог получить доступ к данным.
def exp_tst
@records = Student.find(:all, :conditions=> session[:selection_scope],
:order => sort_order('laboratory_id'))
column_array = ["student_identification", "laboratory_id", "email", "current_status"]
new_array = Array.new()
@records.each do |r|
(0..(column_array.size-1)).each do |i|
new_array << r."#{column_array[i]}"
end
end
end