gpt4 book ai didi

ruby-on-rails - Devise Ruby on Rails 中的 build_resource 和 resource 是什么?

转载 作者:行者123 更新时间:2023-12-04 12:46:19 25 4
gpt4 key购买 nike

我在哪里可以使用 Devise gem 更改要保存的验证?我找到了这个表格:

def create
build_resource(sign_up_params)
if resource.valid?
super
else
render :new
end
end

但我发现的是类似这样的:

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

最佳答案

Devise 可以与任何模型一起使用,User 不是强制性的。一个非常常见的例子是有 UserAdminUser

如果像您展示的那样将 Devise 硬编码为 (User.new),则意味着它永远不会适用于不同的模型,也不会允许您拥有多个模型登录你的网络应用程序。知道这一点后,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?

因为它使用了 resource.valid?,你只需要在模型 UserAdminUser 中实现验证,而不需要改变任何代码设计。

关于ruby-on-rails - Devise Ruby on Rails 中的 build_resource 和 resource 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46627016/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com