Rails:通过Mechanize自定义文件名下载

时间:2014-06-20 12:45:36

标签: ruby-on-rails ruby devise mechanize

现在我试图在注册时为用户下载随机头像。 所以我得到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

但我无法弄清楚如何根据用户ID以特定名称保存文件,怎么做?

1 个答案:

答案 0 :(得分:1)

我建议你在create方法中调用super,因此设计控制器的默认设置会在代码执行之前发生。

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