2015-12-25 2 views
2

Использование Rails 4, разработка, простая форма. Прочитайте об этом много, но наверняка опыта нет. Я сделал RegistrationController, пользовательские представления также существуют. С этим у меня нет проблем с подтверждением пароля, но весь мой PARAMS являются неразрешенный:Разработать дополнительные атрибуты без подтверждения пароля.

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 

Может быть кто-нибудь может написать весь концептуальный ответ об этом?

+0

Вы установили before_filter: configure_permitted_parameters в свой регистрационный контроллер? –

+0

@DileepNandanam Было так много итераций с этой задачей. Вы правы, здесь я забыл это выразить. Большое спасибо, все работает. В моем случае обратный вызов - это 'before_filter: configure_account_update_params, только: [: update]' Не стесняйтесь писать ответ, и я его приму. – nobilik

ответ

1

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

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

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

def skip_devise 
    @skip = true 
end 

def password_required? 
    [email protected]? ? false : super 
end 

def email_required? 
    [email protected]? ? false : true 
end 

Ваша модель заменит password_required? и email_required? методы Завещания.

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

my_model.skip_devise 
my_model.save! 
Смежные вопросы