грабли прерваны! Не удалось преобразовать nil в строку

У меня есть простое приложение для композитора rails 2. Я могу граблимигрировать и заполнить приложение локально, а пользователь-администратор в начальном файле настроен. Однако БД не запускается на Heroku. Я получаю следующую ошибку (с трассировкой при запуске - heroku run rake db:setup --trace ):

** Execute db:abort_if_pending_migrations
ROLES
rake aborted!
can't convert nil into String

Это мой код:

семя.rb

# This file should contain all the record creation needed to seed the database with its     default values.
# The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
#
# Examples:
#
#   cities = City.create([{ name: 'Chicago' }, { name: 'Copenhagen' }])
#   Mayor.create(name: 'Emanuel', city: cities.first)
# Environment variables (ENV['...']) are set in the file config/application.yml.
# See http://railsapps.github.io/rails-environment-variables.html
puts 'ROLES'
YAML.load(ENV['ROLES']).each do |role|
  Role.find_or_create_by_name({ :name => role }, :without_protection => true)
  puts 'role: ' << role
end
puts 'DEFAULT USERS'
user = User.find_or_create_by_email :name => ENV['ADMIN_NAME'].dup, :email =>         ENV['ADMIN_EMAIL'].dup, :password => ENV['ADMIN_PASSWORD'].dup, :password_confirmation =>         ENV['ADMIN_PASSWORD'].dup
puts 'user: ' << user.name
user.add_role :admin
user.save!

приложение.yml

GMAIL_USERNAME: Your_Username
GMAIL_PASSWORD: Your_Password
ADMIN_NAME: First User
ADMIN_EMAIL: [email protected]
ADMIN_PASSWORD: changeme
ROLES: [admin, user]

Я достаточно новичок в рельсах. Изначально приложение было запущено, но я сделал несколько миграций и однажды откатился.

Любая помощь очень ценится.


person Richard Morgan    schedule 10.06.2013    source источник
comment
Вы уверены, что ENV['ROLES'] установлен? Вместо 'ROLES' попробуйте поставить ENV['ROLES'].   -  person davidfurber    schedule 10.06.2013
comment
Разве РОЛИ не должны быть установлены на ['admin', 'user'] вместо [admin, user]?   -  person usha    schedule 10.06.2013
comment
Спасибо за комментарии. Удалось исправить использование figaro gem с помощью этого комментария — github. com/RailsApps/rails-stripe-membership-saas/issues/   -  person Richard Morgan    schedule 11.06.2013
comment
@Richard Margan Пожалуйста, поместите это как ответ и примите его.   -  person Marco Poli    schedule 14.09.2013


Ответы (1)


если вы проследите роль с помощью «db:reset --trace» и добавите «put role» следующим образом:

YAML.load(ENV['ROLES']).каждая |роль| ставит роль

Вы можете видеть, что первая роль - admin, но после rake db:reset ставится сообщение "неинициализированная постоянная роль"

Так что проблема не в ENV['ROLES'] !

person user1522892    schedule 13.06.2013