0
Rails 5.1
Devise
Devise Invitable
와 레일에 대한 기본 ID를 교체, 내가 가진 내 create_usres 마이그레이션 파일에서사용자 정의 ID 모델/문제/shared.rb에서
module Shared
extend ActiveSupport::Concern
def generate_model_id
self.id = "#{self.class.name}.#{Time.now.to_f.to_s}" if id.blank?
end
을, 내가 가진 :
class DeviseCreateUsers < ActiveRecord::Migration[5.1]
def change
create_table :users, id: false do |t|
t.column :id, :primary_string
내 모델/user.rb에서 나는 다음을 가지고있다 :
class User < ActiveRecord::Base
include Shared
enum role: [:user, :vip, :admin]
after_initialize :set_default_role, :if => :new_record?
devise :invitable, :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
내 seeds.rb 파일에서, 아베 : 나는 모든 고안 모델을 내 보낸
user = User.new(
:email =>'[email protected]',
:password =>'xK#986754',
:password_confirmation =>'xK#986754',
:first_name =>'John',
:last_name =>'Doe',
:role => 1,
:approved => true
)
user.skip_invitation
user.save
(확인서, 초대장, 암호, 등록, 세션, 잠금 해제) 및 컨트롤러/사용자 폴더 아래에 해당 컨트롤러를 넣어.
generate_model_id 메소드를 호출하는 컨트롤러는 어느 컨트롤러입니까?
이것은 갈 길이지만, 모든 cretate/update에서 호출 될 것입니다. 생성시에만 필요합니다. – EastsideDeveloper
before_create 콜백 권한을 사용할 수 있습니까? –