Rails SQLite vs MySQL Booleans



我正在使用Rails 3.2。我的开发箱使用SQLite3,生产主机使用MySQL。Rails SQLite ActiveRecord连接器不会将布尔值保存为1或0,只会将其保存为"t"或"f"。当然,我想要DB中立的代码,但我找不到任何方法来解决以下问题。我有一个用户模型和一个轮班模型。在这个查询中,我需要所有的轮班(工作时间表),我需要根据相关表对结果进行排序,并应用布尔条件。

 @sh=  Shift.find(:all, :include=>:user, :order=>'users.rating DESC', :conditions=>["a1=1 or a1='t'"])

我还了解了ActiveRecord::Base.connection.quoted_true和quoted_tfalse。我怀疑我可以更改它们,但这似乎也是不可移植的,如果我升级,可能会被悄悄覆盖。

我不想同时测试1和"t"(或0和"f")。除了将我的开发环境更改为mysql之外,还有什么办法可以做到这一点吗?

您应该能够通过以下条件:

:conditions => [["a1 = ?", true]]

最新更新