gpt4 book ai didi

ruby-on-rails - 生成一个随机字符串以保存为 id,但在每次页面刷新时继续更改?

转载 作者:太空宇宙 更新时间:2023-11-03 18:09:31 25 4
gpt4 key购买 nike

我正在尝试生成一个随机的 4-5 字母数字字符串来替换标准用户 ID,我一切正常,除了每次刷新它生成的页面并替换字符串。我试过 before_save 和 before_create 但似乎都在这里不起作用。

我的模型:

class Admin < ActiveRecord::Base
before_create :admin_ident

devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable,
:validatable, :confirmable, :lockable, :timeoutable

validates_uniqueness_of :admin_ident

def admin_ident
self.admin_ident = SecureRandom.hex(2).upcase
end
end

我的设计注册 Controller :

class Admin::Admins::RegistrationsController < Devise::RegistrationsController

private

def sign_up_params
params.require(:admin_admin).permit(:email, :password, :password_confirm, :admin_ident, :f_name, :m_name, :l_name, :dob, :street_number, :street_name, :unit_apt,
:quadrant, :city, :province, :postal_code, :home_tel, :moibile_tel, :office_tel, :office_ext, :company_email,
:position, :start_date, :end_date, :quit, :resigned, :terminated_cause, :terminated_wo_cause, :medical_leave,
:leave_of_abscense, :dl_number, :dl_class, :expiry, :conditions, :sl_number, :sl_certs, :issued, :expires, :emc_1_name,
:emc_1_tel, :emc_1_relationship, :emc_2_name, :emc_2_tel, :emc_2_relationship)
end

def account_update_params
params.require(:admin_admin).permit(:email, :password, :password_confirm, :current_password, :admin_ident, :f_name, :m_name, :l_name, :dob, :street_number, :street_name, :unit_apt,
:quadrant, :city, :province, :postal_code, :home_tel, :moibile_tel, :office_tel, :office_ext, :company_email,
:position, :start_date, :end_date, :quit, :resigned, :terminated_cause, :terminated_wo_cause, :medical_leave,
:leave_of_abscense, :dl_number, :dl_class, :expiry, :conditions, :sl_number, :sl_certs, :issued, :expires, :emc_1_name,
:emc_1_tel, :emc_1_relationship, :emc_2_name, :emc_2_tel, :emc_2_relationship)
end

def set_admin
@admin = Admin.find_by_admin_ident(params[:id])
end

end

我的 Routes.rb 文件:

  ## Namespace Resources
namespace :admin do
devise_for :admins, controllers: {
:registrations => 'admin/admins/registrations',
:sessions => 'admin/admins/sessions',
:passwords => 'admin/admins/passwords',
:confirmations => 'admin/admins/confirmations',
:unlocks => 'admin/admins/unlocks'
}
resources :admin_static
end

## Devise Scopes
devise_scope :admin do
authenticated do
root to: 'admin/admin_static#home', as: 'admin_authenticated_root'
end
end

不确定我哪里出错了..任何帮助都会很棒!

Edit 1:

我正在尝试编辑 admin/admin_static#home 页面

最佳答案

假设您在这些页面上使用 some_admin.admin_ident 显示 admin_ident

这将更新属性,因为您已将读取器方法替换为设置管理员身份的方法。我建议您改为调用该方法 set_admin_ident(并更新 before_create 以匹配)

关于ruby-on-rails - 生成一个随机字符串以保存为 id,但在每次页面刷新时继续更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37223207/

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