2013-07-29 37 views
0

導軌 - 2.3.8 數據庫 - 的Postgres(9.2)RuntimeError:ERROR Mrelation 「表名」 不存在

活動記錄查詢是不是能夠在雙引號中產生的表名,即

# this ran fine 
     Table.find_by_sql('Select * from "Table" Limit 1') 

     Sql generated - Select * from "Table" Limit 1 

但問題進來,

 Table.find(:first) 
     Sql generated - Select * from Table Limit 1 (Clearly noticed that table not in double quotes) 

活動記錄顯示錯誤

ActiveRecord::StatementInvalid: RuntimeError: ERROR 
    C42P01 Mrelation "Table" does not exist 
    P15 Fparse_relation.c L864  
    RparserOpenTable: SELECT * FROM Table LIMIT 1 

我覺得postgresql適配器不能在雙引號中生成表名。

+0

需要查看您的模型定義和遷移以確定查詢中發生了什麼。我每天使用postgres適配器,並且我沒有任何引用表名的問題。 – plasticide

+0

我面對每個模型的這個問題。當我嘗試在軌道控制檯中寫入這些查詢時。它給了我每個模型的錯誤。 –

+1

'table'不是'postgres'中的保留字嗎?如果是這樣,你是否需要將它封裝在引號中? –

回答

-1

我從來沒有機會在Postgres上工作。但我有一個解決方法。嘗試如下:

table_name = '"Table"' 
table_name.find(:first) 

我還沒有嘗試這在我的機器,因爲我沒有所需的設置。我希望它能工作。