我正在尝试生成一个随机字符串并将其保存到名为railsid的用户字段中。我已经为设计用户重写了registrations_controller.rb。我希望在创建对象时将这个随机生成的字符串保存到用户对象中。当我进入rails控制台以查看用户是否已保存railsid时,它将返回nil。
registrations_controller.rb
class Lenders::RegistrationsController < Devise::RegistrationsController
before_filter :update_sanitized_params
def new
super
end
def create
@user = User.new(params[:user])
@user.railsid = '%010d' % rand(10 ** 10)
super
end
def edit
super
end
def update
super
end
def authenticate_scope!
send(:"authenticate_user!", :force => true)
self.resource = send(:"current_user")
end
private
def update_sanitized_params
devise_parameter_sanitizer.for(:sign_up) {|u| u.permit(:email, :password, :password_confirmation, :type, :confirmed_at, :first_name, :last_name, :railsid)}
end
def after_sign_up_path_for(resource)
root_path
end
end
答案 0 :(得分:0)
发布后不久,我尝试了update_attribute方法,它运行得很好。
def create
super
resource.update_attribute(:railsid, '%010d' % rand(10 ** 10))
end