Используйте Rails 4, Devise, Simple form. Читал об этом много, но опыта точно не хватило. Я сделал 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
nobilik 25 Дек 2015 в 21:24

2 ответа

Лучший ответ

Включите обратный звонок для тех, кто пропустил.

class ApplicationController < ActionController::Base
  before_action :configure_account_update_params, if: :devise_controller?
1
dileep nandanam 26 Дек 2015 в 20:49

В моей модели, которой назначено устройство, я добавил следующие методы:

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? Devise.

Когда я хочу, чтобы моя модель пропустила эти проверки, я просто запускаю это:

my_model.skip_devise
my_model.save!
0
Mr.D 26 Дек 2015 в 16:32