#ruby-on-rails #ruby #devise #mechanize
#ruby-on-rails #ruby #разработка #механизировать
Вопрос:
Теперь я пытаюсь загрузить случайный аватар для пользователей при регистрации. Итак, я получаю Mechanize и делаю это после исследования.
class RegistrationsController < Devise::RegistrationsController
def new
super
end
def create
agent = Mechanize.new
agent.pluggable_parser.default = Mechanize::Download
f = agent.get('http://avatar.3sd.me/100')
f.save('public/images/avatar/it_should_be_user_id.png')
super
end
def update
super
end
end
Но я не могу понять, как сохранить файл с определенным именем в соответствии с идентификатором пользователя, как это сделать?
Ответ №1:
Я предлагаю вам сначала вызвать super в create
методе, чтобы настройка контроллера devise по умолчанию выполнялась до выполнения вашего кода.
Внутри RegistrationsController
класса вы можете получить доступ к текущему пользователю с помощью переменной / метода resource
(вместо чего-то подобного current_user
). Итак, ваш код будет выглядеть следующим образом:
class RegistrationsController < Devise::RegistrationsController
def new
super
end
def create
super
agent = Mechanize.new
agent.pluggable_parser.default = Mechanize::Download
f = agent.get('http://avatar.3sd.me/100')
f.save("public/images/avatar/#{resource.id}.png")
end
def update
super
end
end
Комментарии:
1. Я рад, что это так. Не могли бы вы принять этот ответ как лучший?