设计:需要额外的参数

时间:2016-03-03 10:59:20

标签: ruby-on-rails devise

根据最新的Devise文档,我在:name模型中添加了其他参数User并调整了RegistrationsController。它到目前为止工作,参数已经采用,我现在能够用name注册用户,但是我如何强制要求这个参数呢?如果我没有在注册请求中指定它,它仍然会注册用户而不设置name(在db中然后:name = nil)。那么如何防止这种情况并使name成为必需的?

这是控制器:

class Users::RegistrationsController < Devise::RegistrationsController
  # Disable CSRF protection
  skip_before_action :verify_authenticity_token

  # Be sure to enable JSON.
  respond_to :html, :json

  before_action :configure_sign_up_params, only: [:create]

  protected

  def configure_sign_up_params
    devise_parameter_sanitizer.permit(:sign_up, keys: [:name])
  end

end

1 个答案:

答案 0 :(得分:1)

为此,您必须在注册表单上应用验证。您可以使用两种不同的方式来实现此目的

  • 服务器端验证

    为此,您可以使用validates帮助器。您可以在用户模型中添加以下行(user.rb)。有关详细信息,请参阅this link

    validates :name, presence: true
    
  • 客户端验证

    您可以使用 JQuery plugin 来实现此功能。

    请参阅this链接以使用jquery.validate()实现JQuery验证