在導軌3如果我寫:Model.from('models')
AREL生成以下SQL:Rails 4 AR` from`不同於導軌3?
select "models".* from models
在導軌4相同的AREL生成以下SQL:
select "models".* from 'models', NULL
表名稱被包裹在引號和' ,NULL'被追加。我如何使用arel來獲得與rails 3相同的結果?
我正在利用原來的行爲,所以我可以運行一個相對複雜的with recursive
針對postgres的查詢。在rails4中,當postgres達到我給from
的單引號前面的值時,postgres會窒息。
有沒有更好的方法來做with recursive
查詢?或者,有沒有辦法用arel查詢,所以它可以像以前一樣工作?
我不能重複你所看到的錯誤。在供應商表中使用應用程序時,我通過'Vendor.from('vendors')。to_sql'在3.2和4上看到相同的SQL語句,這導致了'#=>「SELECT \」vendors \「。* FROM vendors」 '。你能分享更多複雜的查詢嗎? –
嗯,我甚至沒有在這一點上使用複雜的查詢,只是一個簡單的查詢,就像你試過的那個。不過,我得到了一個不同的'to_sql'。也許版本差異? Rails 4.0.0,第0.15.1頁。任何其他相關的寶石? –
@DanReedy啊!感謝您的理智檢查。這是由squeel寶石造成的。必須是不兼容的,因爲我從我的項目中刪除它時會得到預期的行爲。我會跟他們一起去。 –