2015-07-22 4 views
0

При попытке выполнить «грабли БД: сброс» команды, я получаю эту ошибкуRails «грабли БД: семена» не работает

rake aborted! 
ArgumentError: missing required :bucket option 

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

В файле seeds.rb, что ошибка указует на, у меня есть ничего, даже не содержащее слово ведра, и в моем файле development.rb, моя Скрепка по умолчанию является следующим:

config.paperclip_defaults = { 
:storage => :s3, 
:s3_credentials => { 
    :bucket => ENV['XXX_DEV_S3_BUCKET'], 
    :url => ENV['XXX_DEV_S3_URL'], 
    :access_key_id => ENV['S3_ACCESS_KEY_ID'], 
    :secret_access_key => ENV['S3_SECRET_ACCESS_KEY'], 
} 
} 

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

редактировать: здесь область в моем файле семян, где ошибка указывает, весь файл довольно большой

family = Family.create!({name: "family1"}) 

random = male_names.shuffle.pop.split 
dad_first_name = random[0] 
mom_first_name = female_names.shuffle.pop.split[0] 
last_name = random[1] 

parents = family.users.create!([ 
    { 
     first_name: dad_first_name, 
     last_name: last_name, 
     username: 'parent1', 
     email: dad_first_name + "@" + last_name + ".com", 
     password: '123456', 
     password_confirmation: '123456', 
     role: "parent", 
     avatar: File.open("#{Rails.root}/db/images/parent1.jpg") 
    }, 
    { 
    first_name: mom_first_name, 
    last_name: last_name, 
    username: 'parent2', 
    email: mom_first_name + "@" + last_name + ".com", 
    password: '123456', 
    password_confirmation: '123456', 
    role: "parent", 
    avatar: File.open("#{Rails.root}/db/images/parent2.jpg") 
    } 
]) 

Точки ошибок конкретно к линии, которая начинается с «родителей»

+0

вставить файл семян – Deep

ответ

0

Может вы попробуете это:

Paperclip::Attachment.default_options.merge!({ 
    :storage => :s3, 
    :s3_credentials => { 
    :bucket => ENV['XXX_DEV_S3_BUCKET'], 
    :access_key_id => ENV['S3_ACCESS_KEY_ID'], 
    :secret_access_key => ENV['S3_SECRET_ACCESS_KEY'], 
    }, 
:url => ENV['XXX_DEV_S3_URL'], 
:path => "/:class/:attachment/:id_partition/:style/:filename" 
}) 
+0

мои извинения, я не заметила измененную первую строку. Это дает мне новую ошибку с тем же адресом «TypeError: нет неявного преобразования nil в String» –

0

S3 ведро настроен на использование ENV['XXX_DEV_S3_BUCKET'].

Я бы предположил, что у вас нет этой переменной окружения.

Проверьте проект для файла с именем .env или .env.development или application.yml.

Эти файлы используются dotenv или Figaro для управления переменными окружения.

Если это приложение Heroku, вам также может потребоваться проверить heroku config, чтобы увидеть, установлены ли значения.

В противном случае, вам может понадобиться передать их в себе, используя один из указанных выше инструментов, чтобы помочь, или передавать их непосредственно в командную строку:

XXX_DEV_S3_BUCKET=xxx-production S3_ACCESS_KEY_ID=1823123412 S3_SECRET_ACCESS_KEY=blahblahblah bin/rake db:seed 
+0

hmm где я могу найти этот файл? я смотрю вокруг, но не могу найти ничего подобного –

+0

@LukeMeyer DotEnv обычно находится в корне проекта (так как он начинается с точки, вам может потребоваться 'ls -al', чтобы увидеть его). Фигаро использует config/application.yml – Unixmonkey

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