有没有办法将 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
此外,不确定标题是否准确,请建议“动态属性”是否适用于此情况。感谢
答案 0 :(得分:13)
我相信您正在寻找以下内容:
dest_table.send(:"#{col}=", xyz)
答案 1 :(得分:10)
你可以尝试
dest_table.write_attribute(col, xyz)
OR
dest_table[col] = xyz
OR
dest_table.send("#{col}=", xyz)