Выбор записей таблицы с использованием Sinatra и ActiveRecord? - PullRequest
0 голосов
/ 30 июня 2018

Я пытаюсь запросить MariaDB, которую я настроил вместе с Sinatra, используя ActiveRecords.

Моя схема таблицы выглядит следующим образом

MariaDB [orbital]> select * from posts
    -> ;
+----+------+------+----------+
| id | user | post | location |
+----+------+------+----------+
|  1 | 100  | 100  | 100      |
+----+------+------+----------+
1 row in set (0.00 sec)

Sinatra настроен с Unicorn и Nginx для прокси-запросов.

MyApp.rb

require 'rubygems'
require 'sinatra'
require 'active_record'
require 'table_print'

ActiveRecord::Base.establish_connection(
  :adapter  => "mysql2",
  :host     => "localhost",
  :username => "root",
  :database => "orbital"
)

class Post < ActiveRecord::Base
end

class MyApp < Sinatra::Application
  get '/' do
    p Post.all
  end
end

Я использую Kurly для `kurly -X GET -k localhost

Я получаю следующую ошибку:

HTTP/1.1 500 Internal Server Error

Я пытался изменить файл ruby, но я получаю другие результаты. Использование table_print позволит странице загружаться с 0 байтами. Я уверен, что я использую ActiveRecord неправильно или что-то неправильно настроил, и буду признателен за полезный пример для выбора данных из моей таблицы.

1 Ответ

0 голосов
/ 01 июля 2018

Я могу порекомендовать вам перехватить этот код в исключении и проверить сообщение об исключении, чтобы увидеть, если оно выдает что-то важное с простым puts. Если это не сработает, вы можете использовать отладчик, чтобы проверить точную ошибку и причину ошибки.

Возможно, неправильная конфигурация метода establish_connection. Возможно, учетные данные неверны или что-то в этом роде.

Хороший отладчик, который я использую, - pry, вы можете добавить его в свой Gemfile, импортировать драгоценный камень в файл вашего контроллера и использовать binding.pry для входа в режим отладчика.

...