2014-06-20 5 views
0

Теперь я пытаюсь загрузить случайный аватар для пользователей во время регистрации. Итак, я получаю Механизацию и делаю это после исследования.Rails: Загрузить по Mechanize custom filename

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, поэтому настройка вашего устройства по умолчанию происходит до того, как ваш код будет выполнен.

Внутри класса 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 
+0

Большое спасибо, это делать работы – user3759996

+1

Я рад, что он делает. Не могли бы вы принять этот ответ как лучший? – gitcdn

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