2012-01-11 83 views
0

有問題的行是:爲什麼在升級到Rails 3.1之後,Rails 3 AREL線沒有問題?

product_properties.includes(:property).where("properties.name = 'Label Description'").first 

它存在於一個 「產品」 的模式,其中的has_many:product_properties。在SQL正在生成,而是因爲它試圖選擇一個空白列拋出一個MySQL錯誤:

SELECT `product_properties`.`` AS t0_r0, `product_properties`.`id` AS t0_r1, ... 

我怎麼能解決什麼導致一個空行的那個選擇?

回答

0

我找到了答案。線索正在看上面的SELECT語句中的第二列。這是「身份證」。這通常是第一列。

此特定表中的「id」未設置爲主鍵,因此表中沒有主鍵。顯然,3.1中有AREL更改,導致Rails查找主鍵,並在找不到時返回空白。這導致了這個問題。我不知道這是否是Rails錯誤。

+1

如果您不確定,我會爲此行爲提交一張票。如果它是預期的行爲,他們會關閉它。最好是讓一個錯誤關閉,而不是一個沒有報告的錯誤以及其他人遇到這個問題。 – dkubb 2012-01-12 08:05:17

相關問題