Ruby on rails RoR 3.1 Mysql2适配器+;表名以字母“结束时远程数据库不工作”;“是”;

Ruby on rails RoR 3.1 Mysql2适配器+;表名以字母“结束时远程数据库不工作”;“是”;,ruby-on-rails,activerecord,mysql2,Ruby On Rails,Activerecord,Mysql2,我不确定这是一只虫子还是我完全疯了 我有一个远程数据库,可以对所有表进行查询,但以字母“y”结尾的表除外 我的模型:ox_stats_country.rb class OxStatsCountry < ActiveRecord::Base establish_connection :openx self.abstract_class = true end 类OxstatCountry

我不确定这是一只虫子还是我完全疯了

我有一个远程数据库,可以对所有表进行查询,但以字母“y”结尾的表除外

我的模型:ox_stats_country.rb

 class OxStatsCountry < ActiveRecord::Base
    establish_connection :openx
    self.abstract_class = true
 end
类OxstatCountry 远程/传统数据库上的表名为“ox_stats_country”

当我试图在rails控制台中查询类似这样的内容时:“OxstatCountry.find(1)”

我得到以下错误:

ActiveRecord::StatementInvalid:Mysql2::错误:表“openx.ox\u stats\u countries”不存在:显示来自
ox\u stats\u countries的字段

如您所见,它会自动将表名复数化,因此无法找到它。我对表名“agency”也有同样的问题。然而,对于所有其他表格(不是以字母“y”结尾),一切都很好

这是mysql2适配器的错误吗?如果是这样,我将在哪里提交此类错误?你对如何解决这个问题有什么想法吗?我对RoR和编程都是新手,所以我非常感谢任何帮助


谢谢你的时间。。。Uli

不确定bug问题,但我知道您可以使用
set\u table\u name“ox\u stats\u country”手动设置模型的表名


从api中:

不确定错误问题,但我知道您可以使用
set\u table\u name“ox\u stats\u country”手动设置模型的表名。


从api中:

那么,ActiveRecord默认情况下会查找复数表名。您的表名应该是复数(例如代理)。但是,可以在模型中使用以下内容替代表名:

class Agency
  set_table_name 'agency'
  #...
end

ActiveRecord默认情况下会查找复数表名。您的表名应该是复数(例如代理)。但是,可以在模型中使用以下内容替代表名:

class Agency
  set_table_name 'agency'
  #...
end

听起来像是拐点问题。你的表名应该是复数的,你为什么要用单数?@bricker我想这是“传统”的一部分。@DaveNewton我没看到,谢谢。实际上听起来像是屈折变化的问题。你的桌名应该是复数的,你为什么要用单数?@bricker我想这是“遗产”部分。@DaveNewton我没看到,谢谢。