Is there a way to set col as dynamic or convert it in some way to a valid attribute? It is currently throwing the error: undefined method `col=' for #...
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
Also, not sure if the title is accurate, please suggest if 'dynamic attribute' is the wrong term for this situation. Thanks
I believe that you're looking for the following:
dest_table.send(:"#{col}=", xyz)
You can try
dest_table.write_attribute(col, xyz)
OR
dest_table[col] = xyz
OR
dest_table.send("#{col}=", xyz)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With