Jos*_*vel 3 ruby ruby-on-rails devise
我在哪里可以使用 Devise gem 更改要保存的验证?我找到了这个表格:
def create
build_resource(sign_up_params)
if resource.valid?
super
else
render :new
end
end
Run Code Online (Sandbox Code Playgroud)
但我发现与此类似:
def create
@user = User.new(user_params)
respond_to do |format|
if @user.save
format.html { redirect_to @user, notice: 'User was successfully created.' }
format.json { render :show, status: :created, location: @user }
else
format.html { render :new }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
end
Run Code Online (Sandbox Code Playgroud)
设计适用于任何模型,不是强制性的User。一个非常常见的例子是拥有User和AdminUser。
如果 Devise 被硬编码为您所展示的 ( User.new),这意味着它永远不会适用于不同的模型,也不会允许您登录到您的 web 应用程序的不仅仅是一个模型。知道这一点,resource代表您已添加devise到的模型,即登录。在您的情况下:
build_resource(sign_up_params) # will be the similar to user = User.new(sign_up_params)
resource # will be an instance of User
resource.valid? # will be the name as user.valid?
Run Code Online (Sandbox Code Playgroud)
由于它使用resource.valid?,您只需要在模型中实现验证User或AdminUser无需更改设计中的任何代码。
| 归档时间: |
|
| 查看次数: |
4474 次 |
| 最近记录: |