首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 4中的sanitize_sql_array

Rails 4中的sanitize_sql_array
EN

Stack Overflow用户
提问于 2015-12-05 01:31:32
回答 1查看 2.7K关注 0票数 3

在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

有人能帮我一下吗?或者提供一个更好的选项来清理查询,就像我试图通过的那样?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2015-12-22 04:07:31

试试这个..。

代码语言:javascript
复制
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']
    )
)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34094129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档