Одна часть вашей проблемы решается с помощью опции ActiveRecord :: Base. В вашей среде .rb, введите
ActiveRecord::Base.pluralize_table_names = false
Ваши другие проблемы, насколько я могу судить, должны быть решены путем погружения в код генератора моделей и определения, где он массирует ваши атрибуты в именах столбцов. Как только база данных и ее схема соответствуют вашему соглашению, ActiveRecord должен (из моего понимания) автоматически сгенерировать свои атрибуты с этим соглашением. Простой способ проверить это - создать быструю запись с вашими соглашениями, создать модель для этой записи, а затем использовать rails / console для печати результата column_names на экземпляре этой модели.
РЕДАКТИРОВАТЬ: Из вашего редактирования выше, я вижу, что метод methodRmissing ActiveRecord, вероятно, обеспечивает соблюдение case. Использование этой ссылки должно решить эту проблему.
Имейте в виду, конечно, что использование регистра Pascal может вызвать некоторые проблемы с Ruby, поскольку заглавные буквы без оператора разрешения области действия считаются константами, а не объектами. Например:
class Foo
attr_reader :low,:Cap
def initialize
@low = "lowtest"
@Cap = "Captest"
end
def bar
self.low #<==works
self.Cap #<==works
end
def baz
low #<==works
Cap #<==raises NameError
end
end
Это будет означать, что код вашей модели должен будет правильно использовать self
, что вы должны делать в любом случае.