Невозможно установить соединение ActiveRecord в моем сценарии ruby - PullRequest
0 голосов
/ 24 августа 2018

Я пытаюсь установить соединение Active Record с моим сценарием ruby ​​и продолжаю получать следующую ошибку:

Traceback (most recent call last):
        10: from ./main.rb:2:in `<main>'
         9: from /home/daveomcd/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
         8: from /home/daveomcd/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
         7: from /mnt/c/Users/mcdonaldd/Documents/Ruby Projects/nfl_ngs/config/initializers/initializer.rb:17:in `<top (required)>'
         6: from /home/daveomcd/.rvm/gems/ruby-2.5.1/gems/activerecord-5.2.0/lib/active_record/connection_handling.rb:60:in `establish_connection'
         5: from /home/daveomcd/.rvm/gems/ruby-2.5.1/gems/activerecord-5.2.0/lib/active_record/connection_adapters/abstract/connection_pool.rb:950:in `establish_connection'
         4: from /home/daveomcd/.rvm/gems/ruby-2.5.1/gems/activerecord-5.2.0/lib/active_record/connection_adapters/connection_specification.rb:190:in `spec'
         3: from /home/daveomcd/.rvm/gems/ruby-2.5.1/gems/activerecord-5.2.0/lib/active_record/connection_adapters/connection_specification.rb:203:in `rescue in spec'
         2: from /home/daveomcd/.rvm/gems/ruby-2.5.1/gems/activerecord-5.2.0/lib/active_record/connection_adapters/connection_specification.rb:203:in `raise'
         1: from /home/daveomcd/.rvm/gems/ruby-2.5.1/gems/activerecord-5.2.0/lib/active_record/connection_adapters/connection_specification.rb:203:in `exception'
/home/daveomcd/.rvm/rubies/ruby-2.5.1/lib/ruby/2.5.0/rubygems/errors.rb:84:in `initialize': wrong number of arguments (given 1, expected 2) (ArgumentError)

Мои файлы для подключения перечислены ниже, я не уверен, что я 'Я делаю неправильно.

require 'active_record'
require 'tiny_tds'
require 'rubygems'
require 'json'
require 'pp'
require 'yaml'
require 'base64'
require 'uri'
require 'net/http'
require 'openssl'
require 'byebug'

# commented out and hard coded while debugging    
#@dbconfig = YAML.load(File.read("./config/database.yml"))
ActiveRecord::Base.establish_connection(
    adapter: 'sqlserver',
    host: '10.xxx.xxx.xx',
    post: '1433',
    database: 'mydb',
    username: '***',
    password: '***'
)

Ответы [ 2 ]

0 голосов
/ 24 августа 2018

ActiveRecord соединения требуют адаптеров соединений для преобразования SQL соответствующим образом, чтобы соответствовать базе данных, с которой взаимодействует AR.ActiveRecord поставляется с набором собственных адаптеров, включая «mysql2», «postgres» и «sqlite3», однако в этом случае вы используете MSSQL (как указано adapter: 'sqlserver' в конфигурации подключения), для которого потребуется внешний адаптер.

Внешний адаптер в этом случае - драгоценный камень activerecord-sqlserver-adapter.

Это можно установить с помощью gem install activerecord-sqlserver-adapter, и тогда вам просто нужно указать его в своем файле, как вы это сделали с другими драгоценными камнями.

Хотя этот драгоценный камень не имеет явных зависимостей (за пределами ActiveRecord), вам нужно будет указать режим соединения (или использовать значение по умолчанию: dblib).Использование значения по умолчанию является безусловно самым простым маршрутом (и у меня никогда не было с ним проблем), однако этот режим требует включения tiny_tds драгоценного камня (который вам уже требуется)

0 голосов
/ 24 августа 2018

Возможно, вы должны установить activerecord-sqlserver-adapter, как говорит наш друг. По умолчанию ruby ​​на рельсах поставляется с sqlite. Попробуйте установить IDE rubymine, это поможет вам настроить базу данных с помощью интерфейса. Посмотрите на ниже:

Экран конфигурации

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...