【问题标题】:Rails 4 with Devise and Paperclip带有设计和回形针的 Rails 4
【发布时间】:2014-01-12 11:28:07
【问题描述】:

模型用户有一个头像(作为回形针字段生成)。 如果我想让用户在注册的编辑页面上更改他的头像(视图是 devise/registrations/edit.html.erb),我将这个字符串添加到视图:

在我添加之前:

multipart: true

添加到表单的 HTML 选项后:

<%= f.file_field :avatar %>

但是头像没有变化,控制台报错:

Unpermitted parameters: avatar

我尝试添加自定义 RegistrationsController

params = params.require(:user).permit(:email, :password, :password_confirmation, :current_password, :avatar)
super

但它不起作用。 在 Rails 4 中不推荐使用 attr_accessible 并且也不起作用。

【问题讨论】:

    标签: ruby-on-rails devise ruby-on-rails-4 paperclip


    【解决方案1】:

    也去 RegistrationController 并添加 :avatar 到那里的参数..(这是我错过的)

    【讨论】:

      【解决方案2】:

      你也可以试试:

       def configure_permitted_parameters
         devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:avatar) }
         devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:avatar) }  
       end
      

      【讨论】:

        【解决方案3】:

        Devise Strong Parameters documentation 之后,您应该将avatar 字段添加到devise_parameter_sanitizer.for(:user)

        在你的ApplicationController

        # app/controllers/application_controller.rb
        class ApplicationController < ActionController::Base
          before_filter :configure_permitted_parameters, if: :devise_controller?
        
          protected
        
          def configure_permitted_parameters
            devise_parameter_sanitizer.for(:user) << :avatar
          end
        end
        

        设计+强参数中的其他方法请参考Devise Strong Parameters

        【讨论】:

        • 是的,它可以工作,但不是 ":user" 需要 ":account_update"
        • @ArtemBlanko,是的,您必须根据自己的要求进行修改。
        • 嗯,但是如果我选择头像,但没有输入当前密码(或任何其他需要保存更改的字段)并按“保存”,头像不显示(和 404 路由错误在控制台中)。页面刷新后就ok了...
        • 你是说只有在验证错误的时候才能看到头像?
        • 是的,如果我收到任何验证错误,我会得到带有无效头像图像的同一页面(编辑)(我通过“”放置),在 url 中放置了新的头像文件名(但在 DB 中是旧的头像文件名)。
        猜你喜欢
        • 1970-01-01
        • 2014-01-31
        • 2015-11-14
        • 1970-01-01
        • 2014-01-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多