2010-10-01 39 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