我们在一起尝试将两个额外的变量(由服务器生成)转换为设计的注册过程。
我的注册控制器如下所示:
class RegistrationsController < Devise::RegistrationsController
private
def sign_up_params
public_key = 'test123'
private_key ='private_test123'
params.require(:user).permit(:first_name, :last_name, :email, :password, :password_confirmation, :public_key => public_key, :private_key => private_key)
end
def account_update_params
params.require(:user).permit(:first_name, :last_name, :email, :password, :password_confirmation, :current_password)
end
end
但是设计不保存变量public和private_key。 (数据库设置正确并包含两个变量)
你知道如何解决这个问题吗?
非常感谢!
答案 0 :(得分:0)
方法sign_up_params
仅适用于默认为devise
的白名单键,因此您只需要:
params.require(:user).permit(:first_name, :last_name, :email, :password, :password_confirmation, :public_key, :private_key)
将那两个varibale列入白名单。这不会将这两个变量发送到数据库,除非您从form
发送这些值或从create
的设计RegistrationController
操作添加它。
要了解如何覆盖默认create
操作,请参阅this
你不需要这些
public_key = 'test123'
private_key ='private_test123'
in sign_up_params