批量将数据转移到历史表,需要用 raw 的方式,但是我一直没搞定如何 execute,目前的做法是这样的:
dd = Product.first # 示例,将要转移的数据
attrs = dd.attributes.keys.map{|s| "`#{s}`"}.join ','
ActiveRecord::Base.connection.execute("insert into `history_products`(#{attrs}) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", dd.attributes.values)
然后报错——”Mysql2::Error: You have an error in your SQL syntax“
而不用动态参数的话是没有问题的