我正在使用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之外,还有什么方法可以做到这一点吗?
答案 0 :(得分:1)
您应该能够将以下内容作为条件传递:
:conditions => [["a1 = ?", true]]