Я на Windows XP ...
Ruby 1.9.2
Rails 3.0.9
MS SQL Server 2005
Я использую tiny_tds + activerecord-sqlserver-adapter
В моей базе данных есть таблица с именем t4 .Я создал такую модель: Рельсы генерируют модель t4 Вот моя простая модель t4.rb:
class T4 < ActiveRecord::Base
end
Вот файл миграции 20111013125957_create_t4s.rb:
class CreateT4s < ActiveRecord::Migration
def self.up
create_table :t4s do |t|
t.timestamps
end
end
def self.down
drop_table :t4s
end
end
У меня есть schema.rb :
...
create_table "t4", :force => true do |t|
t.string "title", :limit => 50
end
...
Проблема: Когда я пытаюсь использовать T4.select ("title"). Where (["id = 3"]), я получаю сообщение об ошибке: ActiveRecord :: StatementInvalid: TinyTds :: Error: Неверное имя объекта 't4s' .: SELECT title FROM [t4s] WHERE (id = 3)
PS: У меня есть еще несколько таблиц с именами Adddocs и Eclaims .Нет проблем с запросами к ним.
Полагаю, проблема в том, что T4.select ("title"). Where (["id = 3"]) отображается на ВЫБЕРИТЕ заголовок ОТ [t4s] ГДЕ (id = 3) ( T4 до t4s ).Зачем?Я не знаю
Но когда я отредактировал файл config / initializers / inflections.rb примерно так:
ActiveSupport::Inflector.inflections do |inflect|
inflect.irregular 't4', 't4'
end
Все работает!Но это не подходящее решение (плохой тон, я думаю): (((