在Rails 3模型中,您过去可以执行以下操作:
query = self.sanitize_sql_array(["SELECT MONTH(created) AS month, YEAR(created) AS year FROM orders WHERE created>=? AND created<=? GROUP BY month ORDER BY month ASC", created1, created2])
然而,这已经从rails中删除了,并明显移到了"ActiveRecord::Sanitization::ClassMethods“(http://api.rubyonrails.org/classes/ActiveRecord/Sanitization/ClassMethods.html#method-i-sanitize_sql_for_assignment)中。但是我试着调用ActiveRecord::Sanitization.sanitize_sql_array(...),得到了错误:
undefined method 'sanitize_sql_array' for ActiveRecord::Sanitization:Module
有人能帮我一下吗?或者提供一个更好的选项来清理查询,就像我试图通过的那样?谢谢!
发布于 2015-12-22 04:07:31
试试这个..。
ActiveRecord::Base.connection.select_all(
ActiveRecord::Base.send(:sanitize_sql_array,
["select created_at as month from orders where date(created_at) >= ?", '2015-12-21']
)
)https://stackoverflow.com/questions/34094129
复制相似问题