如何在设计生成的注册表单中添加额外字段?

Gut*_*ore 5 ruby rubygems ruby-on-rails devise

我正在学习 Ruby、OOP 和 Rails。

我的应用程序使用 Devise gem 来注册用户。

它只提供字段email,passwordpassword confirmation,但我需要一个额外的字段phone number

添加它的正确方法是什么?(不仅仅是在 html 文件中)

小智 10

1)您需要将额外的字段添加到您的用户模型...

rails g migration AddPhoneNumberToUser phone_number:string

2)在ApplicationController中配置强参数

class ApplicationController < ActionController::Base
  before_action :configure_permitted_parameters, if: :devise_controller?

  protected

  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:sign_up, keys: [:phone_number])
  end
end
Run Code Online (Sandbox Code Playgroud)

注意:如果你已经有自定义控制器,你只需要取消注释(覆盖)RegistrationsController#sign_up_params方法

3)生成设计视图(如果你还没有的话)

rails generate devise:views

4) 在app/views/devise/registrations/new.html.erb 中为表单添加额外的字段