[英]Rails 4 + Devise 3 - How to permit parameters for update action?
[英]Devise admin model - how to permit parameters (new fields)?
在使用Devise和Admin模型的应用程序中,我需要添加一些字段-已成功添加它们。 现在,我还需要使用户能够修改这些属性。 当我打开用于修改这些参数的视图并发送表格时,新添加的字段(例如电话号码,网站等)不会被修改。
在终端输出中,我看到是因为不允许使用这些参数,但是如何允许它们呢?
整个update
过程正在进行的动作是registrations#update
:
def update
@user = User.find(current_user.id)
successfully_updated = if needs_password?(@user, params)
@user.update_with_password(devise_parameter_sanitizer.sanitize(:account_update))
else
params[:user].delete(:current_password)
@user.update_without_password(devise_parameter_sanitizer.sanitize(:account_update))
end
if successfully_updated
flash[:notice] = "Your password has been successfully changed."
# Sign in the user bypassing validation in case their password changed
sign_in @user, :bypass => true
redirect_to edit_user_registration_path(:status => 'ok')
else
render "edit"
end
end
这些代码似乎是针对users
,而不是针对admins
-那么我该如何解决这个问题?
先感谢您。
class RegistrationsController < Devise::RegistrationsController
before_action :configure_permitted_parameters
# ...
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:account_update) << :username
end
end
在此示例中,我们将:username
参数添加到白名单。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.