ruby-on-rails - rails : Download by Mechanize custom filename

标签 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以特定名称保存文件,该怎么做?

最佳答案

建议你先在create中调用super方法,因此设计 Controller 的默认设置发生在您的代码执行之前。

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

关于ruby-on-rails - rails : Download by Mechanize custom filename,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24327617/

相关文章:

ruby-on-rails - 允许 eq 比较中的数组内容是 rspec 测试中的任何内容

ruby-on-rails - Salesforce 数据库 dotcom gem : Query doesn't return right results

RSpec 控制台日志返回 302,但测试日志显示 401

ruby-on-rails - 如何跳过Devise的SessionsController的before_filter?

javascript - 如何在 JS Rails 响应中包含 HTML?

ruby-on-rails - 当有自定义 _id 时,mongo-ruby-driver 不会在 upsert 上创建新文档

ruby-on-rails - 500内部服务器错误

ruby-on-rails - 不在 Rails Controller 中实现所有 REST 操作是错误的吗?

ruby - 这段代码如何找到矩形交点?

ruby-on-rails - 使用 rails 4 设计而不更新用户