如何强制 Rails ActiveRecord 在查询中使用 CamelCase,而不是 snake_case

How to force Rails ActiveRecord to use CamelCase in queries, instead of snake_case

我正在尝试创建一个 rails 应用程序,它将连接到第 3 方软件使用的生产 SQL 服务器,因此迁移数据库不是一个选项。

我可以毫无问题地连接到 SQL 服务器 (I used this guide for connecting to existing database, and this one to connect rails to SQL Server),并且我可以查询使用 snake_case 名称的 table。

我需要访问的 tables 在 CameCase 中,我无法重命名它,因为第 3 方软件将停止工作。

我已经实现了 /config/environment.rb

ActiveRecord::Base.pluralize_table_names = false 删除复数。

例如:

UserTable.count

ActiveRecord 创建这个:*SELECT COUNT(*) FROM [user_table]*

我希望 ActiveRecord 创建这个:SELECT COUNT(*) FROM [UserTable]

我应该修改什么文件来指定它应该使用的正确 table 名称?

我认为 rails 根据您的规范在基本级别没有任何支持。正如 rails 相信约定优于配置。

尽管我们可以覆盖您模型中的 table 名称。

user_table.rb

class UserTable < ApplicationRecord

  self.table_name = "UserTable"
  self.primary_key = "YourPrimaryKey"

end