Rails SQLite与MySQL Booleans

时间:2013-09-02 19:57:27

标签: mysql ruby-on-rails sqlite

我正在使用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_false。我怀疑我可以改变它们,但这似乎也是不可移植的,如果我升级它可能会被默默覆盖。

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

1 个答案:

答案 0 :(得分:1)

您应该能够将以下内容作为条件传递:

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