Как заставить 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
Другие вопросы по тегам