我正在使用最新版本的postgresql,ruby和datamapper。
我创建了一个类似的查询:
collection = Entry.all(:id => 2..4, :text => /test/)
collection
是DataMapper::Collection
个对象。只需调用DataMapper::Query
即可获得query = collection.query
对象。但是如何以字符串形式获取查询的原始SQL?
我需要它,因为我必须自定义原始SQL(我需要SELECT DISTINCT
而不是SELECT
),但我不想完全自己编写SQL,因为我是不确定我是否可以编写安全查询。
我也很乐意以另一种方式归档我的目标,我愿意接受全新的建议;)
答案 0 :(得分:5)
这似乎不是那么容易实现,但这是一种hackish解决方案
collection = Entry.all(:id => 2..4, :text => /test/)
query = collection.query
DataMapper.repository.adapter.send(:select_statement,query)