获取升级的轨道
问题描述:
记录回国后如何使这个查询中的ActiveRecord:获取升级的轨道
UPDATE table_name SET column = 'value' WHERE id = 123 RETURNING other_column
我试图update_all
但它返回update_atributes
返回真/假的更改的记录数量,以及update
返回整目的。
在轨道应该是这样的(伪代码):
other_column = TableName.where(:id => 123).update_attributes(:column => 'value').returning(:other_column)
puts other_column
答
result_sets = Model.connection.execute("UPDATE table_name SET column = 'value' WHERE id = 123 RETURNING other_column")
result_sets.each do |result|
p result[:other_column]
end
如果你只是想更新编号123的单个记录,你为什么不能这样做呢?
TableName.update(123, :column => 'value').other_column
+0
如果您打算使用'connection.execute',则必须小心处理SQL中的值的引用/转义。 –
+0
'connection.execute'将绕过rails验证,'update'会生成2个查询:'select','update'。 我只需要一个查询。 –
请用你实施的代码来详细说明你的问题。 (模型,控制器等) –
问题已更新 –