Я пробовал все, что я могу найти, в том числе то, что находится в Devise README (https://github.com/plataformatec/devise#strong-parameters), это более наглядное представление о README (http://blog.12spokes.com/web-design-development/adding-custom-fields-to-your-devise-user-model-in-rails-4/comment-page-1/#comment-26217), и каждый ответ, который я нахожу в StackOverflow, кажется совместимым с этими двумя решениями. Все эти решения приводят к одной и тем же ошибкам: 2 ошибки запрещенных этому пользователя из спасаемых: - Email не может быть пустым - Пароль не может быть пустымНевозможно добавить пользовательские поля в пользовательскую модель Devise в Rails 4 с сильными параметрами
Я также попытался в том числе Gem «protected_attributes» в gemfile и запуске пакета, чтобы я мог использовать attr_accessible, а не сильные параметры. При таком подходе оказалось, что я смог сохранить пользователя в порядке, но ни одно из моих полей, обычае или ином, на самом деле не сохранялось. Они все остались ноль. Я также попытался вернуться к предыдущей версии, где был использован attr_accessible, а не сильные параметры, и это привело к той же проблеме, когда ничего не сохранилось.
Я нахожусь в полной готовности с этим в настоящий момент, поэтому любые идеи по другим решениям, которые могут работать, будут очень благодарны ... Спасибо заранее!
EDIT: Вот мой контроллер приложения:
class ApplicationController < ActionController::Base
before_filter :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_in) { |u| u.permit(:profile_name, :email, :password) }
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:first_name, :last_name, :profile_name, :email, :password, :password_confirmation) }
devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:first_name, :last_name, :profile_name, :email, :password, :password_confirmation, :current_password) }
end
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
end
что делает ваш пользовательский вид контроллера, как? Вы добавили метод для сильных параметров в контроллере? –
Я передаю сильные параметры моей модели пользователя через свой контроллер приложений.Я добавил свой код к моему оригинальному вопросу. Спасибо за вашу помощь! Пожалуйста, дайте мне знать, если вам нужна какая-либо другая информация. – Jake
Этот урок помог мне с такими проблемами. В случае, если это помогает кому-то еще: http://www.jacopretorius.net/2014/03/adding-custom-fields-to-your-devise-user-model-in-rails-4.html – 0112