2016-09-03 3 views
0

Я создаю промежуточное программное обеспечение для стойки, которое я хочу использовать в своем приложении Rails. В принципе, мне нужно записывать запросы, соответствующие определенным URL-адресам, в мою базу данных. Для этого мне нужно передать конфигурацию базы данных на мое промежуточное ПО, чтобы он мог установить соединение с БД. Я пытаюсь сделать: -Передача нескольких аргументов для промежуточного ПО Rack в Rails application.rb

db_yml = Rails.root.join('config/database.yml') 
db_config = YAML.load(db_yml.read)[Rails.env] 

Но это дает сообщение об ошибке

конфигурации/application.rb: 40: в <class:Application>': undefined method чтения»для # (NoMethodError)

Если Я добавляю byebug и запускаю то же самое в консоли beebug, он отлично работает. Я не могу понять, почему. Я хочу сделать следующие вещи: -

  1. мне нужно прочитать & изменить конфигурацию базы данных, прежде чем передать его на мой промежуточный слой в качестве аргумента.
  2. Я хочу прочитать домен запроса url. Мы используем драгоценный камень Apartment, а имя нашей схемы будет именем домена.

Я последовал за несколько статей here & here. Я новичок в Rails и не знаю хороших ресурсов, поэтому, пожалуйста, помогите. Спасибо заранее!

ответ

1

Вы должны использовать:

db_yml = Rails.root.join('config/database.yml') 
db_config = YAML.load(File.open(db_yml))[Rails.env] 

Rails.root.join('config/database.yml') возвращают путь к файлу, который является строкой.

+0

Но почему мой фрагмент работает в консоли byebug? И как я могу получить доступ к URL-адресу запроса в application.rb? – abhinav

Смежные вопросы