如何添加服务器生成的变量来设计注册?

时间:2016-10-12 06:10:44

标签: ruby-on-rails variables devise server

我们在一起尝试将两个额外的变量(由服务器生成)转换为设计的注册过程。

我的注册控制器如下所示:

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。 (数据库设置正确并包含两个变量)

你知道如何解决这个问题吗?

非常感谢!

1 个答案:

答案 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