我正在使用 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 之外,还有其他方法吗?