如何从活动记录对象获取数据库sql值?

时间:2015-05-25 10:31:27

标签: mysql ruby-on-rails activerecord

我最初的问题是我需要向DB插入大量记录,所以为了加快速度,我想使用mysqlimport,它接受一个行值文件并将它们加载到指定的表中。所以假设我有模型Book,我不能简单地使用book.attributes.values,因为其中一个字段是一个序列化为db的哈希(使用serialize),所以我需要知道这个哈希将被存储的格式是什么在数据库中。时间和日期字段相同。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

如何使用SQL插入语句而不是序列化?

book = Book.new(:title => 'Much Ado About Nothing', author: 'William Shakespeare')

sql = book.class.arel_table.create_insert
  .tap { |im| im.insert(record.send(
            :arel_attributes_with_values_for_create,
            record.attribute_names)) }
  .to_sql