设计:在没有密码的其他控制器上更新用户
问题描述:
如何在没有所需密码,密码确认和当前密码的情况下更新我的用户?设计:在没有密码的其他控制器上更新用户
我想外面更新用户设计的控制器,我的状态正在与这个助手:
module ContentHelper
def resource_name
:user
end
def resource
@resource ||= User.new
end
def devise_mapping
@devise_mapping ||= Devise.mappings[:user]
end
end
和我的表单编辑:
<%= form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put, multipart: true }) do |f| %>
<%= devise_error_messages! %>
<%= f.file_field :personal_file, placeholder: "Upload file" %>
<%= f.submit %>
<% end %>
有了这个它的出现,我不能将我的密码留空并重定向到用户编辑页面:
Password is too short (minimum is 8 characters)
Password can't be blank
Current password can't be blank
答
您可以写下你自己的控制器,根据你的意愿更新用户。像
class UserController < ApplicationController
before_filter :authenticate_user!
def update
current_user.update(user_params)
end
private
def user_params
params.require(:user).permit(:personal_file)
end
end
会做的伎俩。你不需要把current_user
想象成一些魔法设计的东西,而是把它用作你拥有的任何其他模型。
如果你无论如何希望使用Devise控制器来做到这一点,你应该看到this的答案。
好的谢谢!我已经做到了 – terrorista