2010-10-01 56 views
2

所以在rails中,我使用sqlite3进行开发,使用mysql进行生产。 Sqlite3和mysql处理布尔的方式不同(sqlite3中的“t”或“f”以及mysql上的true或false)。通常这不是问题,因为我可以这样做:Rails find_by_sql数据库类型依赖

Comment.find(:all, :conditions => ["viewed = ?", false]) 

并且rails会根据环境插入相应的值。但是如果我想要做一个find_by_sql,我需要一个布尔值呢?

回答

3

你很幸运!当你传递一个数组时,#find_by_sql也执行与数据库无关的字符串替换。

Comment.find_by_sql(["SELECT * FROM comments WHERE viewed = ?", false]) 
+0

ahhhh ...我被推迟了,我想我应该在发布这个问题之前试过。 – tybro0103 2010-10-01 16:52:31