Как установить динамический атрибут
Есть ли способ установить col как динамический или каким-то образом преобразовать его в действительный атрибут? В настоящее время выдает ошибку: неопределенный метод `col='для #...
def copy_stock_data_from_sandbox(cntrlr)
source_table = cntrlr.singularize.classify.constantize
dest_table = source_table.new
source_table.column_names.each do |col|
dest_table.col = xyz # <------ This is the line in question
end
dest_table.save
end
Кроме того, не уверен, что заголовок является точным, пожалуйста, предложите, если "динамический атрибут" является неправильным термином для этой ситуации. Спасибо
3 ответа
Решение
Я считаю, что вы ищете следующее:
dest_table.send(:"#{col}=", xyz)
Ты можешь попробовать
dest_table.write_attribute(col, xyz)
ИЛИ ЖЕ
dest_table[col] = xyz
ИЛИ ЖЕ
dest_table.send("#{col}=", xyz)