【发布时间】:2013-09-01 08:46:07
【问题描述】:
在 Rails 3 中它工作得很好,但在我的新 Rails4 Appp 中,我不知道是什么问题。
Devise GitHub Page 上的指南
我的注册控制器
def update
# required for settings form to submit when password is left blank
if params[:user][:password].blank?
params[:user].delete("password")
params[:user].delete("password_confirmation")
end
@user = User.find(current_user.id)
if @user.update_without_password(devise_parameter_sanitizer.sanitize(:account_update))
set_flash_message :notice, :updated
# Sign in the user bypassing validation in case his password changed
sign_in @user, :bypass => true
redirect_to after_update_path_for(@user)
else
render "edit"
end
end
我的应用程序控制器
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) do |u|
u.permit(:name, :first_name, :user_name, :email, :password, :password_confirmation, :provider, :uid)
end
devise_parameter_sanitizer.for(:account_update) do |u|
u.permit(:name, :email, :password, :password_confirmation, :first_name, :last_name,
:user_name, :avatar, :profile_cover, :facebook_link,
:twitter_link, :instagram_link, :status)
end
end
我将控制器添加到我的 Routes
:registrations => "registrations"
我使用以下适当的方法更改了更新调用:
@user.update_without_password(devise_parameter_sanitizer.sanitize(:account_update))
但我收到 NoMethodError in RegistrationsController#update 错误。
【问题讨论】:
标签: ruby-on-rails devise controller ruby-on-rails-4