ruby на рельсах: как использовать ORM с сервера БД для удаленного подключения - PullRequest
0 голосов
/ 19 января 2020

Я попытался и успешно база данных Remote Conncect (на основе ruby на рельсах).

Сервер с исходной базой данных на основе PostgreSQL и из другой ruby на веб-платформе rails. и база данных имеет таблицу «hit_products» (название модели: HitProduct)

после удаленного подключения к базе данных, я выполнил миграцию.

rake db:migrate RAILS_ENV=development

, и когда я получаю доступ к консоли Rails, я ввожу этот код :

HitProduct.first(3)

Я ожидаю, как в результате:

ubuntu:~/environment (master) $ rails c
2020-01-19 07:34:25 WARN Selenium [DEPRECATION] Selenium::WebDriver::Chrome#driver_path= is deprecated. Use Selenium::WebDriver::Chrome::Service#driver_path= instead.
Running via Spring preloader in process 8830
Loading development environment (Rails 5.2.3)
2.6.3 :001 > HitProduct.first(3)
  HitProduct Load (1.0ms)  SELECT  "hit_products".* FROM "hit_products" ORDER BY "hit_products"."id" ASC LIMIT $1  [["LIMIT", 3]]
 => [#<HitProduct id: 1, title: "[STEAM] Merry Snowballs temporary free", created_at: "2020-01-18 03:53:22", updated_at: "2020-01-18 03:53:22">, #<HitProduct id: 2, title: "LG ultra HDTV 65UM781C3NA", created_at: "2020-01-18 03:53:22", updated_at: "2020-01-18 03:53:22">, #<HitProduct id: 3, title: "[Wemakeprice] 20 LG GRAM 17D90N-VX30K", created_at: "2020-01-18 03:53:22", updated_at: "2020-01-18 03:53:22">] 

, но вывод выглядит так:

ubuntu:~/environment (master) $ rails c
Running via Spring preloader in process 5594
Loading development environment (Rails 5.2.4.1)
2.4.0 :001 > HitProduct.first(3)
NameError: uninitialized constant HitProduct
        from (irb):1

, но SQL Запрос работает.

ubuntu:~/environment (master) $ rails db
Password: *******
Some psql features might not work.
SSL connection (cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256)
Type "help" for help.

catch_dev=# SELECT title FROM hit_products LIMIT 3;
                           title
-----------------------------------------------------------
[STEAM] Merry Snowballs temporary free
LG ultra HDTV 65UM781C3NA
[Wemakeprice] 20 LG GRAM 17D90N-VX30K
(3 rows)

catch_dev=#

Как я могу использовать ORM с другого сервера (Использовать БД с удаленного сервера)?

1 Ответ

1 голос
/ 19 января 2020

Я сделал это!

  1. make Файл модели: app/models/hit_product.rb

  2. ввод под кодом

class HitProduct < ApplicationRecord
  # establish_connection "[DATABASE ENVIRONMENT]".to_sym
  establish_connection "#{Rails.env}".to_sym

  # self.table_name = "[TABLE_NAME]"
  self.table_name = "hit_products"
end
Это работает !!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...