Я пытаюсь добавить одно поле на мою страницу регистрации, которая использует devise. Я выполнил инструкции в документе Devise. Новое поле - это поле «роль». Я уже успешно перенес его в базу данных. Теперь я пытаюсь сделать так, чтобы регистрация работала. Вот новый ApplicationController:Как добавить настраиваемое поле для регистрации в Rails 4?
class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
def devise_parameter_sanitizer
if resource_class == User
User::ParameterSanitizer.new(User, :user, params)
else
super # Use the default one
end
end
end
А вот измененная модель пользователя:
class User::ParameterSanitizer < Devise::ParameterSanitizer
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
def sign_up
default_params.permit(:email, :role)
end
end
После того, как я добавил эти два файла, сервер может даже не нагрузки. Как успешно добавить поле роли?
EDIT
Вот мой routes.rb файл
devise_for :users
root 'static_pages#home'
get 'student' => 'static_pages#index'
Вы создавали дизайнерские виды? – rb512
Да, но я добавил поле формы в форму: <% = f.input: role%> – Philip7899
вы можете показать свои маршруты.rb и расширенный контроллер разработки? – rb512