设计更新其他属性而无需密码确认。

时间:2015-12-25 18:24:18

标签: ruby-on-rails devise

使用Rails 4,设计,简单形式。阅读了很多关于此的内容,但肯定没有足够的经验。我已经制作了RegistrationController,自定义视图也存在。 有了这个我没有密码确认的问题,但我的所有参数都没有被允许:

def update_resource(resource, params)
    resource.update_without_password(params)
end

据我所知,这应该是决定,但对我没有任何影响:

def configure_account_update_params
    devise_parameter_sanitizer.for(:account_update) do |u|
      u.permit(:username, :first_name, :last_name, :price_plan_id, :email_notify, :msg_notify,
               :email, :password, :password_confirmation, :current_password)
    end
  end

也许有人可以写一些关于它的概念性答案?

2 个答案:

答案 0 :(得分:1)

为错过的人启用回调。

class ApplicationController < ActionController::Base
  before_action :configure_account_update_params, if: :devise_controller?

答案 1 :(得分:0)

在我分配了Devise的模型中,我添加了以下方法:

def skip_devise
  @skip = true
end

def password_required?
  !@skip.nil? ? false : super
end

def email_required?
  !@skip.nil? ? false : true
end

您的模型将覆盖设计的password_required?email_required?方法。

当我希望我的模型跳过这些验证时,我就这样运行:

my_model.skip_devise
my_model.save!