Как заставить Rails ActiveRecord использовать CamelCase в запросах вместо snake_case
Я пытаюсь создать приложение rails, которое будет подключаться к производственному серверу SQLServer, который используется сторонним программным обеспечением, поэтому перенос базы данных не является вариантом.
Я могу без проблем подключиться к SQL-серверу (я использовал это руководство для подключения к существующей базе данных, а это - для подключения рельсов к SQL Server), и я могу запрашивать таблицы, которые используют имена snake_case.
Таблицы, к которым мне нужен доступ, находятся в CameCase, и я не могу их переименовать, потому что стороннее программное обеспечение перестанет работать.
Я уже реализовал /config/environment.rb
ActiveRecord::Base.pluralize_table_names = false
удалить множественное число.
Например:
UserTable.count
ActiveRecord создает это: *SELECT COUNT(*) FROM [user_table]*
Я хочу, чтобы ActiveRecord создал это: SELECT COUNT(*) FROM [UserTable]
Какой файл мне изменить, чтобы указать правильное имя таблицы, которое он должен использовать?
1 ответ
Я не думаю, что рельсы имеют какую-либо поддержку в соответствии с вашей спецификацией на базовом уровне. Поскольку рельсы верят в условность важнее конфигурации
Хотя мы можем переопределить имя таблицы в вашей модели.
user_table.rb
class UserTable < ApplicationRecord
self.table_name = "UserTable"
self.primary_key = "YourPrimaryKey"
end