Ruby on rails 设计更新附加属性而无需密码确认。

Ruby on rails 设计更新附加属性而无需密码确认。,ruby-on-rails,devise,Ruby On Rails,Devise,采用导轨4、设计,形式简单。读了很多这方面的书,但肯定没有足够的经验。我已经注册了RegistrationController,自定义视图也存在。 这样,我对密码确认没有问题,但我的所有参数都是不允许的: def update_resource(resource, params) resource.update_without_password(params) end 据我所知,这应该是一个决定,但对我没有任何影响: def configure_account_update_param

采用导轨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

也许有人可以写下关于它的完整概念性答案?

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

def skip_devise
  @skip = true
end

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

def email_required?
  !@skip.nil? ? false : true
end
您的型号将覆盖
所需密码?
所需电子邮件?
设计方法

当我希望我的模型跳过这些验证时,我只需运行以下命令:

my_model.skip_devise
my_model.save!

为错过的用户启用回调

class ApplicationController < ActionController::Base
  before_action :configure_account_update_params, if: :devise_controller?
class ApplicationController
您是否在注册控制器中设置了过滤器:配置允许的参数?@DileepNandanam这项任务重复了很多次。你说得对,我忘了把它放在这儿了。非常感谢,一切正常。在我的情况下,回调是
在\u filter:configure\u account\u update\u params之前,仅:[:update]
请随意编写答案,我会接受它。