如何强制 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
我正在尝试创建一个 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