Я новичок в рубинах на рельсах, и у меня проблема с функцией find.Ruby on Rails добавляет двойные кавычки к функции «Найти»
Я создал новое веб-приложение, которое соединяется с устаревшей базой данных Oracle с использованием усовершенствованного адаптера oracle.
Когда я выполнить следующие команды в консоли рельсы, я получаю данные обратно из базы данных
License.where(license_no: 'L1234')
или
License.find_by_license_no('L1234')
Однако, когда я пытаюсь использовал функцию поиска(), Я получаю сообщение об ошибке. т.е.
License.find(:all)
или License.all
Выход ошибки в консоли рельсах выглядит следующим образом:
irb(main):003:0> License.find(:all)
?[1m?[35mLicense Load (1062.5ms)?[0m SELECT "LICENSE".* FROM "LICENSE"
ActiveRecord::StatementInvalid: OCIError: ORA-01878: specified field not found i
n datetime or interval: SELECT "LICENSE".* FROM "LICENSE"
from stmt.c:289:in oci8lib_191.so
from c:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/activerecord-o
racle_enhanced-adapter-1.4.1/lib/active_record/connection_adapters/oracle_enhanc
ed_oci_connection.rb:155:in `fetch'
from c:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/activerecord-o
racle_enhanced-adapter-1.4.1/lib/active_record/connection_adapters/oracle_enhanc
ed_adapter.rb:637:in `block in exec_query'
from c:/RailsInstaller/Ruby1.9.2/lib/ruby/gems/1.9.1/gems/activerecord-3
.2.2/lib/active_record/connection_adapters/abstract_adapter.rb:280:in `block in
log'
Глядя на команду SQL в выводе ошибок, я заметил, что двойные кавычки быть добавлен в оператор select. Когда я попытался запустить команду SQL в SQL Developer, у меня возникла ошибка. Есть ли причина, по которой добавляются двойные кавычки? Есть ли способ остановить рубин на рельсах от добавления двойных кавычек к именам таблиц?
ОБНОВЛЕНИЕ База данных оракула составляет 10 г, и я использую рельсы 3.2 с рубином 1.9.2p290. Я также пробовал следующее и получил ту же ошибку. License.all
Вы забыли упомянуть любой из вы версии программного обеспечения. Поэтому трудно быть полезным. Все, что мы знаем, это то, что вы имеете дело с старой версией DB ... – jdoe
Похоже, что решение для решения моей проблемы состояло в том, чтобы обновить настройку часового пояса в файле /config/initializers/oracle.rb в соответствии с тем же часовым поясом как база данных Oracle. – dspencer