Ruby on rails 运行时错误:错误mrrelation“;tablename";不存在
轨道-2.3.8 数据库-博士后(9.2) 活动记录查询无法在双引号ie中生成tablenameRuby on rails 运行时错误:错误mrrelation“;tablename";不存在,ruby-on-rails,ruby,ruby-on-rails-2,rails-postgresql,pg,Ruby On Rails,Ruby,Ruby On Rails 2,Rails Postgresql,Pg,轨道-2.3.8 数据库-博士后(9.2) 活动记录查询无法在双引号ie中生成tablename # 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 * fro
# 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适配器无法以双引号生成tablename。我从来没有机会在Postgres上工作。但我有一个解决办法。尝试如下:
table_name = '"Table"'
table_name.find(:first)
我没有在我的机器上尝试,因为我没有必要的设置。我希望它能起作用。需要查看您的模型定义和迁移,以确定查询中发生了什么。我每天都使用postgres适配器,而且我在引用表名方面没有遇到任何问题。对于每个模型,我都面临着这个问题。当我尝试在rails控制台中编写这些查询时。每个模型都有错误。“table”不是postgres中的保留字吗?如果是的话,你不需要用引号括起来吗?对不起,我会指定它的。这只是表名。