【问题标题】:RoR + Devise + Carrierwave: Authenticate with password before uploading imageRoR + Devise + Carrierwave:上传图片前使用密码进行身份验证
【发布时间】:2013-07-05 00:51:41
【问题描述】:

我正在我的网站上创建一个配置文件系统,使用 Devise 对用户进行身份验证,并使用 Carrierwave 上传图像。但是,当我使用 Carrierwave 在用户的编辑页面上上传图像时,无论用户是否输入密码,它都会上传到帐户。

如何让它在上传前要求身份验证?

【问题讨论】:

    标签: ruby-on-rails ruby devise carrierwave


    【解决方案1】:

    您应该在上传控制器上使用before_filter。示例:

    如果您使用user 作为设计的资源名称,这里是示例before_filter

    class NamesController < ApplicationController
      before_filter :authenticate_user!
      ..
      ..
    end
    

    Documentation

    【讨论】:

    • 我收到一条错误消息,提示 ImageUploader:Class 的未定义方法 `before_filter'
    • 你把before_filter放在哪里?
    • 你应该放入控制器而不是上传器类。你能告诉我完整的错误堆栈吗?
    【解决方案2】:

    请关注我:

    1. 添加你的模型

      attr_accessor :avatar_cache
      
    2. 请在您的表单中添加隐藏字段

      <%= f.hidden_field :avatar_cache %>
      

    在我的情况下,我有:

    1. 模型 user.rb 中的列头像
    2. 请将 avatar_cache 更改为您的专栏。

    【讨论】:

      【解决方案3】:

      我的项目配置似乎有问题。从头开始重新启动我的项目似乎可以解决它。

      【讨论】:

      • 把所有东西都扔掉然后从头开始并不是一个好主意。如果你这样做,你将永远不会明白如何在你的代码中发现错误和错误。
      猜你喜欢
      • 1970-01-01
      • 2020-02-28
      • 2014-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多